Emacsはごくたまに暴走してC-gを押しまくっても反応しないことがあります。
たとえば、 inhibit-quit が t のときはquitできないようになりますが、その時に無限ループが発生したら止まらなくなります。
(実際にはC-gを3回押せば止まるようです。)
(defun death-loop () (interactive) (let ((inhibit-quit t)) (while t)))
何かしらの原因でEmacsが応答しなくなったときは、外部からSIGUSR2シグナルを送信すればEmacsはデバッガに入り実行中のコードを取り止めます。
$ pkill -USR2 emacs
一度試してみては?
ちなみにこのSIGUSR2というのは debug-on-event 変数で指定されるものです。
その後に
M-: (setq debug-on-quit nil)
を実行してください。
本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。