Richard,
Ideally you would create a Program called "Lead Lifecycle" or something and that has campaigns that manage the main sync.
This is good to move all preMQLs to a Queue, then push them to salespeople when they reach a score or other threshold.
You can then sync Programs to SFDC Campaigns which will also sync over leads.
What you want to do is create a very clear process for moving leads over on creation and then you can properly use the Program-SFDC Campaign Sync.
If you hold back leads from SFDC, then DO NOT use Program-SFDC Campaign sync. You'll have to use a lead lifecycle to push MQLs over.