Not a silly question.
Synchronize actually switches to the main thread temporarily, so it is not 'as if' - the code is literally run on the main thread. If the main thread is doing something when Synchronize is called, the Synchronize call must wait for the main thread to go idle. Similarly, if a synchronized call is executing, anything else that needs to take place on the main thread must wait for the synchronized call to complete.
So for this scenario there is no interrupting one operation mid-stream to switch to something else.