Дело в том, что они портятся ниже регистра SP на момент немаскируемого прерывания, это в нормальной ситуации место использованных временных данных, так что их изменение ничего не меняет. Стек растет вниз, байты памяти перезаписываются с уменьшением SP, это штатное поведение. Но иногда команды работы со стеком используется для изощренных программистских приемов, не предполагающих записи в стек на определённых участках кода (перенос графики, чтение из таблиц). И вот тут порча даже двух байтов может привести к непредсказуемым результатам, от порчи графики до зависания со спецэффектами и сброса. А портятся они потому, что при вызове процедуры немаскированного прерывания (NMI) на стек всегда автоматически кладется адрес возврата в прерванную программу (а часто ещё и 2-4 байта содержимого регистровых пар, но это уже самой процедурой обработки NMI).
Пауза спасает потому, что обычно выполняется простой процедурой без манипуляций со стеком. Но если бы автор задался целью обезопасить программу от взлома/сохранений на момент паузы, сделать это также очень просто.