than one process was running at the same time. This
was caused by the override of SharedPool.__new__ not stopping
ProcessPool.__init__ from being run whenever process.simple_execute is called.
When __init__ ran for the second time, the DeferredSemaphore was replaced,
and this meant that we ended up releasing a different semaphore to the one
that was acquired.