You are right about the prompt not being settable - it can be set even after the server starts, but once a shell is started, it retains the original prompt.
However, have you tried using ShellCommandEventArgs.Action
to implement commands that give results later? The action is invoked in a background thread and no prompt is shown while it's running, so it looks like this might match your use case. See the second code snippet here for sample code (with e.Command == "hello"
).