final long reserveAndGetWaitLength(int permits, long nowMicros) {
        long momentAvailable = reserveEarliestAvailable(permits, nowMicros);
        return max(momentAvailable - nowMicros, 0);
    }
Reserves next ticket and returns the wait time that the caller must wait for.

@return the required wait time, never negative
lts-core/src/main/java/com/github/ltsopensource/core/commons/concurrent/limiter/RateLimiter.java