I think that you should calculate a deadline outside the future and then calculate the diff inside the future, otherwise you might end up waiting longer and longer if the backoffDispatcher becomes the "bottleneck".