That is a good point @sarina. I am not sure that using `else` will fix it, since the release has to happen before we make the recursive call. If I remember correctly `_update_subtask_status` adquires the lock implicitly.


I have two questions:
 
- why use this retry method instead of the one available from celery?
- do we need to add some pause between retries? The code above will retry as fast as possible.