ありがとうございます。
どうやらプロンプトが戻ってこないのは、run-programの時に:waitがデフォルトでtになっているのが原因のようで、
(setf sbcl
(run-program "sbcl"
'("--core" "/usr/local/lib/sbcl/sbcl.core"
"--noinform" )
:search t :wait nil
:input :stream :output :stream ))
としたら上手くいきました。

ただこのままだと(read-char-no-hang (process-output sbcl))などとしたときにプロンプトも戻ってきてしまいます。
sbclの--noprintオプションを使うと出力を制御できるのですが、今度は何も出力されなくなってしまいます。
プロンプトの文字を変えるにはどうしたら良いんでしょうか。