doesn't this fix mean it crashes after 2^32 milliseconds now?
That means it's ok up to 2^53 milliseconds, at which point it starts losing precision (you can't represent every integer above 2^53 as a double, it gets rounded).
It doesn't really matter because no computer that exists today will still be running in 2^53 milliseconds.