Про то, как выполнять асинхронные задачи в последовательности написано в разделе
canvas документации по celery. Там же и пример есть (копирую, чтобы сократить время)
>>> from celery import chain
# 2 + 2 + 4 + 8
>>> res = chain(add.s(2, 2), add.s(4), add.s(8))()
>>> res.get()
# или даже так
>>> (add.s(2, 2) | add.s(4) | add.s(8))().get()
16
здесь add, если не поняли, задача-пример, которая повсеместно встречается в документации. Она просто складывает два числа. А страшный метод .s() лишь короткая форма записи для .subtask(). В той же документации про canvas обо всём этом сказано в разделе Signatures.
Что касается повторений заваленных задач, то там всё просто и в документации есть. Единственное, нужно настроить RESULT_URL. Обратите внимание, не BROKER_URL, а именно RESULT, многие почему-то путают