A naive fix for this could be
diff --git a/lisp/emacs-lisp/eldoc.el b/lisp/emacs-lisp/eldoc.el
index 49ba71fb1b..5fafd066db 100644
--- a/lisp/emacs-lisp/eldoc.el
+++ b/lisp/emacs-lisp/eldoc.el
@@ -272,7 +272,9 @@ eldoc-minibuffer-message
(when (stringp format-string)
(apply #'format-message format-string args)))
(force-mode-line-update)))
- (apply 'message format-string args)))
+ (unless (and (current-message)
+ (not (string= (current-message) "Quit")))
+ (apply 'message format-string args))))
(defun eldoc-message (&optional string)
"Display STRING as an ElDoc message if it's non-nil.
which imitates what help-at-pt-maybe-display-does.
It seems to work more or less well in my testing, but not always. Obviously
I haven't studied the full impact of this.
Dmitry, do you have any thoughts on this?