fn exponential_delay(base: Duration, attempt: u32) -> Duration
base * 2^attempt for a 0-indexed attempt, capped at 32x to avoid overflow.
base * 2^attempt