Currently when an async event fail to be processed it is added back in queue as soon as possible.
This does not maximize the chance of a success if the failure is caused by a transient error like a network issue.
Some delay should be put between each rescheduling of the task. The usual way to deal with that is to use an exponential backoff algorithm [0].
[0]
https://en.wikipedia.org/wiki/Exponential_backoff