We're in the same boat and have implemented a solution on the SFDC side that checks to see if the lead is a Contact record in SFDC already, and if it is, it will create what we call a 'Not Net New' lead record which is hidden from Marketo. We have multiple sales teams that a single lead could potentially route to, so we need to figure out a way to do this for lead records that aren't yet Contacts in SFDC, so we're thinking of adding this same logic to the lead object. However, I'm wondering if there are any other ways to do this. It sounds like there isn't a great solution for it.
The reason we don't just send a task, is because that lead may need to go to a new sales team/queue, and our sales compensation is based off of leads being converted - so we need to be able to track that (which we can't from a task).