I suggested logic freeze instead of all blocks be forced into off state after bench's comment
The problem with freezing is that it leads to desyncs. Let's say you have a timer on your ship, which is connected to a blast door and a logic gun.
It goes Delay1 -> Open Blastdoor -> Delay2 -> Delay3 -> Fire Logic gun -> Delay 4 -> Delay5 -> Close Blastdoor
If the blastdoor has it's own delay timer, which is often easier with modules, hitting the main ship where the gun is can cause a desync where the door opens, gun fails to fire if its hit during delay 2 or 3 then logic gun goes off with the blast door down and does nothing. Anything that interferes with logic at all is bound to cause lots of malfunctions, making logic impractical for combat designs. This particular example you can work around by putting all the logic on the main ship, and only having wireless connectors on the blastdoor, but that just means more irritating wireless connections you have to do.
In fact, writing this i found a universal solution to the suggestion, and even the first one where logic completely resets; it's trivially simple too:
Place all logic in a separate module docked to the ship with its own power supply and surround it with armor from the main ship. It cannot be hit by EMP, it will never lose power, it's just a lot of extra tedious busywork when making a ship.