Попробуй еще это посмотреть, пока такое впечатление что ты можешь заюзать пример с ThreadPoolExecutor с минимальными изменениями и вообще без очередей. Просто докидывай туда таски, потом собери результаты (через executor.submit спокойно можешь докидывать если я правильно понимаю доку, впрочем, надеюсь поправят если ошибаюсь и несу чушь)