duration vs blockDuration
I'm not understanding the relationship between `duration` and `blockDuration`.  Using the example "Login endpoint protection" in the wiki if I set my `RateLimiterRedis` configuration as:

```
const limiterConsecutiveFailsByUsernameAndIP = new RateLimiterRedis({
  storeClient: redisClient,
  keyPrefix: 'login_fail_consecutive_username_and_ip',
  points: 5,
  duration: 60 * 60 * 24 * 90, // Store number for 90 days since first fail
  blockDuration: 30
});
```

after 5 failed login attempts I'm locked out for 90 days-- the calculated retrySec is ~ 7776000 and any subsequent login attempts are blocked (until I delete my redis keys).  I'm purposely setting the `blockDuration` to 30 (i.e. 30 seconds) for testing.  Once it's working as expected I'll change to 1 hour (60 * 60) or something reasonable.

How do these 2 settings work together?  For testing and understanding how this works I've set `duration` to 60 and `blockDuration` to 30, but only `duration` seems to matter and I reset 60 seconds after the first failed attempt.  Once max `points` have been consumed in `duration` that appears to be it.  How does `blockDuration` matter at all?