I've gone to great lengths to try and get a web server to be perfectly stable. Considering, at the lowest level, it depends on lwIP, TCP, IP, link layer, ESP hardware, router and airwave congestion, perfect stability is impossible. A simple collision on the WiFi airwaves can loose a packet that requires a resend which bubbles up to the top in the form of a momentary pause in the transfer of data.
I would assume that the time base is tied to something immune to pausing... like a crystal. However, there are a lot of steps between the crystal and code getting a return u32 millis(). I wanted to check with the Advanced experts on this forum to see if my assumption is correct.