Oh I thought we were going to merge .increment, .is_exhausted, .should_retry_response, and .sleep into fewer calls...

Still, isn't the current code counting a redirect as an error (in observed_errors)? That's a bug which would inflate the backoff time prematurely. Would probably be good to have a test for this scenario.