The quota does reset every 24 hours, but the time seems to wander. Some years ago, I seem to remember it resetting around midnight UTC, but it doesn't anymore.
Recently, the SmokeDetector bot started logging when its quota reset. Here are the logged times so far:
Day and Time (UTC) Log entry
------------------ --------------
Dec 23 6:04 PM API quota rolled over with 2001 requests remaining.
Dec 22 6:04 PM API quota rolled over with 2014 requests remaining.
Dec 21 6:04 PM API quota rolled over with 2851 requests remaining.
Dec 20 6:04 PM API quota rolled over with 4665 requests remaining.
Dec 19 11:36 AM API quota rolled over with 2580 requests remaining.
Dec 18 11:36 AM API quota rolled over with 2824 requests remaining.
Dec 17 ??? Site + API + Bot glitch. Rollover not certain.
Dec 16 5:06 PM API quota rolled over with 1030 requests remaining.
Dec 15 5:05 PM API quota rolled over with 900 requests remaining.
Dec 14 5:05 PM API quota rolled over with 1896 requests remaining.
Dec 13 5:05 PM API quota rolled over with 5506 requests remaining.
Dec 12 5:05 PM API quota rolled over with 4118 requests remaining.
Dec 11 5:05 PM API quota rolled over with 2598 requests remaining.
Dec 10 5:05 PM API quota rolled over with 1640 requests remaining.
Dec 9 5:05 PM API quota rolled over with 1624 requests remaining.
Dec 8 5:04 PM API quota rolled over with 1981 requests remaining.
Dec 7 5:04 PM API quota rolled over with 2866 requests remaining.
Dec 6 5:04 PM API quota rolled over with 4596 requests remaining.
As you can see, the reset times tend to stay constant for a few days, then jump to a new time, then stay constant again. A "punctuated equilibrium".
We've yet to ascertain any rhyme or reason to it.