It reads like you're not clear on the difference between update rate (logic) and frame rate (rendering). The 'fix your timestep' approach is designed to lock your update rate while leaving your frame rate to go as fast as your hardware will allow. With the fixed timestep it is certainly possible to see movement appear to be jerky, due to aliasing between the render rate and the update rate, which can be fixed by either making the update timestep a lot smaller (so the aliasing is less pronounced) or by using the blend factor (which attempts to interpolate across the aliasing).
Vsync is a slightly different issue; obviously if your program says "do nothing until vsync" then the whole loop will take longer to execute. But the next time you get to the update section, you'll see more time will have passed, and will perform more update iterations accordingly.
I've been working on some console titles recently and there, it's common to have a fixed frame rate of 60Hz or 30Hz. If you're not rendering fast enough to hit 60Hz, you assume 30 and can double up the updates to match. If your updates or rendering takes too long for 30Hz, you're screwed and need to fix your code or assets, because you're not allowed to run at 20Hz. In some ways, it's a lot simpler!