Fix (non-container) pytest stdout buffering-related lock-up
Two issues:
1. When one of the stdout/stderr pipe buffers of a process started
with `subprocess.Popen` is full, the process can get blocked until
the buffer is drained.
2. Calling `Popen.wait` can deadlock when called before draining
the pipe buffers (if they are full).
This avoids the issue altogether by giving the child process a
temporary file to write to.