У меня сейчас реализации на асинках. Пользователь добавляет задачу она кладется в редис там воркер ее берет из очереди и запускает новый луп в котором выполняютя подзадачи и в каждой из них опрашивеется статус задачи. Если он в слипе то спать и сновл проверить если нет то завершиться или продолжить. Мне кажется что это костыли дикие