OK.

Then when asking question:

(if (and (daemonp) (eq terminal-frame (selected-frame)))
    try searching for another frame to focus or defer ask-my-question
  ask-my-question)

For frame-list:

(defun my-frame-list ()
  (if (daemonp)
      (filtered-frame-list #'(lambda (f) (not (eq f terminal-frame))))
    (frame-list)))

Right ?