do you mean GetTickCount64, or your own custom version myGetTick64 ...
GetTickCount64 Windows >=Vista, i remember at one time in *nix the counter did not increase when in suspended, this may not be true now though, not on a machine with fpc/laz on it at the moment to test.
Sorry, yes I mean GetTickCount64.
I have my own custom version of myGetTick64 because I still had Windows XP machines at my customers (although I think they are all replaced now).
procedure Delay(ms: DWORD);
var
I: UInt64;
begin
I := GetTickCount64 + ms;
while I > GetTickCount64 do
begin
Application.ProcessMessages;
Sleep(1);
end;
end;
GetTickCount64 should always increase because it's based on the uptime of the machine and it's retrieved every time.
But even if GetTickCount64 doesn't increase during standby/machine suspension it wouldn't be a problem usually because with a Delay(5000) it really wouldn't matter much.
But don't do Delay(24 * 60 * 60 * 1000) for a sleep of 1 day because then, yes, it might not be that accurate.
In that case a different kind of alarm is better.
But my guess is that KodeZwerg is just asking for a Delay of a few seconds while it doesn't lock the OS and your own program.