RateLimiterMemory msBeforeNext is negative in Vercel edge function
I've been testing this lib on a nextjs edge middleware hosted on Vercel, and I'm facing an issue where `msBeforeNext` would not be reset when its value is < 0, or randomly after waiting for a bit (probably edge function being cold?). The value will continue being decremented under 0 and point won't be reset.

Here's a simplified version of the middleware:

```js
const rateLimiter = new RateLimiterMemory({
	points: 20,
	duration: 5,
})

export const middleware = async (req: NextRequest) => {
	try {
		const res = await rateLimiter.consume(req.ip, 1)
	} catch (error) {
		return NextResponse.rewrite(new URL('/429', req.url), {status: 429})
	}

	return NextResponse.next()
}
```

Catched error would return an object like:

```js
{
  _remainingPoints: 15,
  _msBeforeNext: -2009,
  _consumedPoints: 5,
  _isFirstInDuration: false
}
```