Over time, the resolution of llGetTime() decreases.
It's an inherent property of floating point. "float" in LSL is only 32-bit. Which means a 24-bit mantissa and an 8-bit exponent. As the time value since startup increases, the resolution decreases.You start out with millisecond resolution, but 194 days after the script starts, you're down to 1 second resolution. 49 days in, you're at 250ms resolution. I actually hit this in a script. My bad. If you reset the clock with llResetTime(), you start over. Otherwise, it increases until the script is reset. Even if the script is idle.
Probably ought to be mentioned in the wiki.
This is also why you can't add llGetPos and llGetRegionCorner to get useful positions in grid coordinates. They will be off due to roundoff error. You cannot accurately represent a grid-wide position with a 32-bit float.