Vsync has no guarantee of frame rate, only that it aligns with your monitors refresh rate - so if it can fit two frames in before your monitor refreshes, I think it does that.
The difference between this and the previous version is that previously, when vsync was enabled, I was also limiting the FPS to 60. I removed that in case people have high-refresh-rate monitors and want to see it at 120fps.
I'm using SFML for the rendering side of things, so i might need to take a deep dive into their implementation to find out why this has suddenly gone wrong...