 
 (defun fstar-subp--ensure-available (error-fn)
   "Raise an error with ERROR-FN if F* isn't available."
-  (when fstar-subp--continuation
+  (when (fstar-subp--busy-p)
     (funcall error-fn "F* seems busy; please wait until processing is complete"))
   (unless (fstar-subp-live-p)
     (funcall error-fn "Please start F* before jumping to a definition")))

  "Process the next pending overlay of BUFFER, if any."
  (with-current-buffer buffer
    (fstar-subp-start)
    (unless fstar-subp--continuation
      (-if-let* ((overlay (car-safe (fstar-subp-tracking-overlays 'pending))))
          (progn (fstar-log "Processing queue")
                 (fstar-subp-process-overlay overlay))

  (setq proc (or proc fstar-subp--process))
  (and proc (process-live-p proc)))

(defun fstar-subp--busy-p ()
  "Return t if current `fstar-subp--process' is live and busy."
  (and (fstar-subp-live-p fstar-subp--process)
       fstar-subp--continuation))

(defun fstar-subp-available-p ()
  "Return t if current `fstar-subp--process' is live and idle."
  (and (fstar-subp-live-p fstar-subp--process)
