For many processes, PS won't cancel if it has reached a challenging situation. In particular, if it has run out of memory while building a mesh. It may not have completely run out of memory, but it is apparently running on cache, using 5% processor. The "Are you sure?" dialog will come up and the Cancel button greys out, but PS keeps going. You can even pause and resume, but it won't ever actually stop, leaving no option but to force quit.
The same thing happens when aligning chunks and it gets stuck at 99% projecting points.