It's a bit odd that Retry::notify takes a sync function when Retry is intended for async usage. We have a case where we need to notify another entity asynchronously. In order to do this, we will have to clone something and spawn a background task.
To be honest, the same probably goes for every other closure-taking method on Retry. I think it makes sense for them all to be async.