Turns out Windows calls `ProcessOutput()` on the transform many times before sending any input. The first successful call to `ProcessOutput()` occurs after the stream change. No draining or flushing occurs or is necessary. I modified the test to show the output constraint.