Thats with a crystal, but when I say within a second, I am timing it by hitting "run" on the remote control, to start counting when the PCs clock changes minutes, so it can be a second or so different - thats why I say within a second.
I also remembered why I didnt use this code 2 years ago when I had the same problem, after pausing, and starting again, the countdown rapidly counts down at first.
At the time, it was beyond me, but this time I just stuck in targetMillis = targetMillis + 1000 in the case of the "run" button being pushed.
This also helps the first second always being a second, rather than jumping quickly to 59.