We currently have the same problem in Node, where fork is still being called synchronously from the event loop instead of asynchronously from the thread pool.
Calling exec() or spawn() in Node is therefore not asynchronous and can block your event loop for hundreds of milliseconds or even seconds as RSS increases.