Get rid of setTimeout for more accurate rate limiting