If anyone stumbles across this, a better method is to use the windows .net calls.
https://msdn.microsoft.com/en-us/library/system.diagnostics.process%28v=vs.110%29.aspx
its probably the same thing system exec does under the hood, but you get asynchronous control of standard in, out, and err.
I'm certain the performance of this will crush anything else, and all the software is already on your windows machine.
~Jon