Replace PooledDispatcher with a ThreadPoolExecutor-based Dispatcher