The streams implementation on Windows (FileHandleStream to be precise) didn't implement peekDataImpl, setPositionImpl and getPositionImpl hence it crashed because the streams module accessing nil implementation.
I actually fixed this (not PR-ed it yet tho, maybe already fixed in devel too, haven't checked it yet), but the actual problem is another, it's the C buffer that wouldn't flush to stdout/stderr handle until the the subprocess' buffer is full.
