The timer will fire (usually) at rhe set time, but, there is a time difference between the event fire and the ui update.
The later will only be done when the OS has the time for it (I'm not a pro dev so I don't know or really care about mnemonics)
The best would be to, upon timer event fire, save the ticks to a variable and the use that for calculating the offset needed.
The ticks value is, as far as I know, comes from an (hardware based?) ndependent timer, so nothing the OS does, will make it offset