Mary, this is usually a great idea. As Rajesh noted, it is often best to have a central system moving the leads around.
1. Holding Tank Queue - this is only for SFDC Leads.
Marketo can have a central flow that says Net New Leads get assigned to Holding Queue. We know it is net new because it has SFDC TYpe=EMPTY
SFDC Contacts already exist, so this is not necessary for them. But keep in mind if you assign a Contact to a Queue, it duplicates the record as an SFDC Leads.
2. Existing records are ok because Marketo will have deduped it (by email address) and your flow in #1 will be ok. If the record isn't deduped by email, then a new dupe is created.
3. Moving Leads Out of the Queue
I usually have at least 2 flows handling this and there are two methods:
SFDC Method - trigger a Change Owner if Lead Status=MQL, then run LARs. This will require special Apex trigger because LARs run once by themselves.
Marketo Method - trigger MQL:
SFDC Lead: Change Owner from Queue to X
SFDC Contact - assign task/alert to Owner