BackoffSchedule improvements

We might want to:

  • rename BackoffSchedule::timeout to BackoffSchedule::overall_timeout for clarity
  • introduce a BackoffSchedule::single_attempt_timeout() -> Option<Duration> function for controlling the timeout for each attempt. See !1911 (comment 2988170)

For context, see the discussion on !1911 (merged)