Most versions of Windows are not what is called a Real Time Operating System. A very technical description of that is at Windows and Real-Time – OSR. I do not know if that is the cause but if it is then you cannot expect precision from Windows, at least not from most versions of it, such as Windows 10 and 11. If your requirements are time-critical then you can improve accuracy using a device driver but even then you are not guaranteed accuracy.
VB - calculate the period of millisecond accurately but with suspension timer

The period is calculated as below
AnswerTime1 = now() ' start of event
AnswerTime2 = now() ' end of event - suppose at 14.9seconds
There is a timer to restrict it in 15 seconds
Dim TimeDiff As TimeSpan = AnswerTime2 - AnswerTime1
it works flawlessly, never go beyond 15 seconds
However it allows suspensions in the middle of 15 seconds period, the suspension period will be deducted.
when suspension starts, the Timer.stop, vice versa
SuspTime1 = Now() ' start of Suspension
SuspTime2 = Now() ' end of Suspension
SuspTimeSpan = SuspTime2 - SuspTime1 + SuspTimeSpan
Dim TimeDiff As TimeSpan = AnswerTime2 - AnswerTime1 - SuspTimeSpan
Timer is running at 1000 interval
However, it returns greater than 15 seconds. it is worser if more suspensions in middle
any advice? Thanks a lot.