If not (coRedirect in ConsoleOptions) and WaitForTerminate = false no waiting thread is created and the state will stay forever as psRunning since HandleThreadTerminated will never be called and there is no way to reset the state to psReady. From that point the component will become unusable i.e. no other process can be created.

It is better in this case to set the state as Ready instead of Running.