How a delay is taken. Injected so retry backoff is testable without timers.
typedef Sleep = Future<void> Function(Duration duration);