I couldn't reproduce this with emacs -Q, but this is what happends. I insert these forms into a scratch-buffer
;; QUIT gets inserted
(condition-case error
(sleep-for 5)
(quit (goto-char (point-max))
(insert "QUIT")))
;; QUIT doesn't get inserted. Quit isn't displayed in the mini-buffer
(condition-case error
(let ((inhibit-quit t))
(sleep-for 5))
(quit (goto-char (point-max))
(insert "QUIT")))
GNU Emacs 24.3.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.6.4) of 2013-11-02 on ubuntu