Well, I was mostly interested in the relative call overhead.
QueryInterruptTime() is a little over 2 ns on this machine. (Rerunning the tests I also see QueryPerformanceCounter() at more like 62 ns, which is a little off from the measurement I made earlier.)
It's perhaps worth pointing out though that even without a callback, just calling SetWaitableTimer() with a 1 ms period would probably get the resolution close enough for our purposes.
Ah, I see what you're getting at—artificially invoke a timeout on the server side...
Whether that's a good idea is perhaps a separate discussion, but it would do for testing purposes at least.
It would, but I'm not seeing anything obvious to test?