docs: private State updateStateWithBackOff(final long timeoutInNanos) {
          AtomicRateLimiter.State prev;
          AtomicRateLimiter.State next;
          do {
              prev = state.get();
              next = calculateNextState(timeoutInNanos, prev);
          } while (!compareAndSet(prev, next));
          return next;
      }