Now, I am starting to see a way to improve the algorithm to such an extent as to 100% remove the freeze during even worst case scenarios, but I am still working on it ; P. For now, here is an algorithm that will only freeze for big blocks.

Remember how the old one ran when you'd build towers in such a way as to have a potential block? Try building 3 vertically (2 and then 1 in the middle) to make the algorithm run (just anywhere). You will see that there will be no freeze! Yes, the algorithm did in fact run. Why is there no freeze? Because of the algorithm's improvement ; P.

Now, if I am able to somehow make it so that the algorithm does not trace absolutely everything when there is a block, I'll be gold.

edit
325 op limit -> 824 op limit thus far, meaning more than 2x faster. I am trying to make it not run across empty space. If I can manage that, I can get another major speed boost (from 1724 iterations to 1160 iterations).

edit
Working on a major algorithm improvement. Should be around 4x-6x faster. After that, I'll rewrite the algorithm to a new one, which'll be around 100x faster ;D.

Oh yes, for this... don't allow users to build in corners of your arena. Make the terrain unbuildable or something, otherwise the users will be able to make a huge brick ;o. If you have no corners, then you are fine (like ltw lanes), but if you do, block them off. For example, wmw maps contain 8 corners.

edit
actually, this could be problematic for checkpoints too (rects where creeps have to touch). Just make 1 tile in the rect unbuildable and all is good ; ).

So what exaclty is wrong with building a huge brick, if it doesn't corrupt the pathing algorithm everything is still fine, right?

you can't build a huge brick from wall to wall... i was just thinking of blanketing rects specifically in my own wmw map, which would be a huge brick except for touching the opposite wall :\, so I was being silly in my super tired stupor of corners last night, lol. The instant you try to touch the other wall (an actual block), it'll detect it.

To prevent users from blanketing the rect, just make one of the tiles unbuildable (only 1 is needed). In my case, I would make the corners unbuildable since people never build at those anyways. Not sure what to do about the back checkpoints tho ;o.