You know, I am surprised we don't just code into Bitcoin to shut down if faced with a need to reorg more than 5 blocks, rather than accepting an attack chain. Then all an attacker can do is temporarily DoS a chain - far less disruptive than rolling back transactions.
Shutdown and do what?
How do your resolve the fact that some % of the network believes chain A is valid and some % believes chain B is valid. Never re-org? If you re-org and the longest chain wins then you are back where you started from.
Shut down and refuse transactions.
It would require human consensus/interaction to figure out what went wrong - typically by adding a block checkpoint - and start the network back up. Those in a position to patch the checkpoint into their client would do so. Those who cannot would simply force connect to a node advertised by its owner as "connect to me" and whose chain version they agree with, which would effectively censor out the unwanted chain from their view.