Quote: "Is there some way to force a Sync while debugging and paused on a breakpoint?"
Sure, put the Breakpoint into an ThrowError Function that as part of it's program is to Synchronise (I'm assuming you mean Update > Render > Swap to Display the "Current State") before calling the actual Breakpoint.
The reason you'd have other Breakpoints is to Analyse the content of the current In-Flight Variables to ensure they're populating correctly.
If they're not, then you KNOW because you're breaking at or by the result of the intended Variable; where the Problem is (or at least is going to be limited to).
Note that the onus here is on YOU to place intelligent breakpoints to track the data you need to in order to Debug, and as noted... if the point is just to ensure the Output is correct, you can just use a Function that includes a Generic Breakpoint.
You can also think about breaking down Sync( ) to it's Component Elements (Update, Render, Draw and Swap)
Remember that "Render" is the Generic Function for running through Rendering all 3D and 2D "Visible" Objects... where-as calling DrawObject / DrawSprite / etc. will specifically Draw that element; which I'd argue is actually a better approach if you want more control, as you're specifically saying what needs to be Drawn and When.
Calling "Swap()" without ever calling Render but calling Draw on each element you want / need to; means only those will actually be presented to the Display Output; as what Swap does is Clear the Front Buffer, Swaps the Back and Front Buffer, then calls the Display Present (which then Presents the Front Buffer to the Display); while you're free to work with the Back Buffer.
A lot of this is about how complex and involved you WANT to be in regards to the pipeline., but it can all provide a lot of control and power.