Adesso ho capito meglio, nel conto alla rovescia.
Tieni conto che le istruzioni consumano frazioni di secondi. Ipotizza che le istruzioni consumano 4ms
quindi quando visualizza 5.00, subito dopo consuma 20ms per eseguire le istruzioni che seguono. quindi in realtà sono 4,59, 996
poi passa un secondo e richiama il tik ed è già 4,58,992 (che comunque qui vedo 991, quindi si mangia 4,5 ms)
Prova cambiando questa riga in
Dim t As Long = round(Max(0, targetTime - DateTime.Now)/1000)*1000
cosi che se la differenza sono millesimi li elimina