We are draining the handle in another thread, but we are draining it into another handle! If that handle isn't drained, the thread will block. If the only thread draining the test's handle blocks, the test's handle will fill, freezing the test. This is what happened when called without `--show-details=streaming` before. The only sink for the incoming test output was a lazily-read string. That string was not used until after the test exited, but if the test's output was large, the test could not exit until enough of the string had been read to drain the output buffer. I could have made this change and kept `tee`, but I came to regard `tee` as harmful because it hides this problem: it looks like `tee` will always drain its input handle, but not when there's only one output handle and it blocks.