You can also use DwmFlush to similar effect. I think the root of the problem is that SwapBuffers for whatever reason reports as CPU usage when really it should be a wait state. Is it actually using CPU? I don’t know for sure, it might just be marked incorrectly by CPU monitors for some reason.
After adding this little DwmFlush helper class, my CPU reports as 0% most of the time, even with fairly heavy OpenGL usage.