The key assumption you mentioned below is :
If it's unsuccessful again, skip and move on
There is way to tell right now if the delete command was successful or not. A limitation of the way Microsoft has Designed .NET
You see the issue here?
If it's unsuccessful again, skip and move on