Manager for an asynchronous process. The process will be run in the background, and its standard output and standard error will be collected asynchronously. Since the collection of output happens asynchronously (handled by threads), the process won't block even if it outputs large a