I believe the choppiness is due to the interference between your forced ("hard coded") 60 fps and the display's refresh rate
Thanks for replying to that. I agree with you about being user's responsibility to force that off. I'm also concerned that some Intel HD chipsets have a bug that fails to turn vsync on. My brother-in -law has one of those. I think I should put some more effort into this.
I get the hiccups by capping frame rate on software it doesn't matter if vsync is on or off. It can indeed be interference between vsync and my code, but it seems to be other problem too. I did a few more tests in the weekend and realized those hiccups are evenly spaced in time. With 30fps cap I get hiccups every ~2s, while at 60 I get every ~0.5s which is really annoying.
It just occurred to me. Can this be a thread yielding problem. I mean, maybe between my measured time and the update another thread would run making my time measure not right for that update. Next frame when it tries to compensate it would give a jump. If that is the case, how should I proceed, execute time query and update in a critical section, block interruptions if that is even allowed?
I'll try this a little harder, if I get some progress I'll let you know. Again, thanks for the insight, I really appreciate that.