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)

を実行してください。

本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。