Make sure an exception in ThreadedService.Cleanup() doesn't leave threads blocked in WaitForStop()