A little more background. Each of these API calls costs a variable number of credits but we don't know ahead of time so we need to try them all.
If there are enough credits, the calls will go through but if there are not enough credits for one call, we'd like to attempt the next calls which may be cheaper. By adding retry logic (and some notifications) we give the team a chance to go and add more credits to the account so those missing calls will eventually succeed. So there is no need for the calls to happen sequentially necessarily but we should not make too many calls at once.
Is there a way to set things up where if a task is waiting to be retried, another task can be processed? I have not used tags for task concurrency limiting. Would this help if I set the limit to 1? In other words, would a task that is in retry state occupy a concurrency "slot"?