fix deadlock hazard: if a worker output more than the OS's pipe buffer on stderr (before closing stdout), it would be blocked; the parent would still be waiting on stdout