in this case instead of using queue auto retry use a retry mechanism in your logic
so you can add two extra parameters to your queue item one is retry count and other is step number
by default for first item add both values as 1 and 1…and when a queue item is failed…check in your exception block if max retry is reached…by comparing retry from the queue item and a number Cint(in_Transactionitem.SpecificContent("retry").ToString) < maxretry
on the then side add a queue item and increment the retry number and also add the step number that you want it to work from…and on else side max retry is reached so dont add anymore items
for step number you can use an asset and update the value after completion of each step and get the asset value when we have a system exception and same value can be passed in queue for step