This looks like a job for a message queueing system, rather than (or in addition to) a thread pool.