When calling ReadToEndAsync a StreamReader for the ShellStream in the ShellStreamOnDataReceived event, the request hangs and never returns.
it is due to this block in the read method:
while (_readBuffer.ActiveLength == 0 && !_disposed)
{
_ = Monitor.Wait(_sync);
}
the method never returns 0 so ReadToEnd never completes.