Fix test running output truncation on async STDIO

For issue https://github.com/mochajs/mocha/issues/333

Note: this does not address the issues with `mocha interfaces` and other non-test commands, because if we actually waited for the output to get flushed, the default `mocha` action (running tests) would start to occur. Refactoring needs to happen to fix this.

But this solves the output being cut when the STDIO is async, which is the main use-case.