This test repeatedly reads Date.now() and logs the timespan since the start. Then, it runs a sequence of tasks to delay things, with a read of Date.now() between each delay.
All logs start with the current performance.now() so we can also see how it behaves.
GoogleBot does not follow normal time. This page identifies that the Date.Now() and performance.now() functions always increment by 1ms each time they are called, but it does not take into account real-time spent processing (the delays).
Each function independently increments 1ms each time they are called.
Testing in a normal browser does not see these increments, but does record the delay times.
The other test used setTimeout to log after 2 seconds. When that ran, both performance.now() and Date.Now() indicated that 2 seconds had elapsed.
For Googlebot, running code takes up no time, but it fast-forwards the clock to trigger timeouts.
It's also worth noting that the first timespan logged was at 1ms from performance.timeOrigin, while a real browser takes time to get to run the code (loading, parsing).