Мне все таки интересно что бы вы предложили более верхнеуровнево
а чем тебе не нравится твой же план?
1. таска проверяет состояние, если не готово, то вызывает себя же через время, иначе вызывает другую таску и передает ей данные (если они в простом виде) или, их, где-то сложить
2. вторая отрабатывает один раз, работая с полученными данными
Все последовательно, все юзает стандартные возможности celery