The ThreadPoolScheduler spins up a new thread which runs our standard event loop so support tasks which are scheduled at some point in the future, the problem is this thread contains a while (true) with no way to exit. It should probably exit when the thread pool shuts down.