Hey Christina, we have a similar setup to you. Basically, if there is a target account that is either identified by us as a priority account, or an account that is actively being worked, then anyone associated with it would be a contact. This is regardless of whether they're a customer or not. Similar to you, we give less value to leads because we know that the data won't be as accurate, and they aren't at a company that we've identified as one we want to do business with. Obviously, this doesn't mean we can't convert leads into contacts and create an account for them if we decide that we want to target them.
We have set up the layouts for leads and contacts very thoughtfully so that visible fields are only those which make sense for whether they're a lead or a contact. Also, alert emails are specific to leads or contacts, so that a contact email doesn't say "lead status". I'm sure it's a little more work, but this is something that you can definitely make work.
Also, I'm not super versed in all of the intricacies of totally flipping an existing model on its head, but I think another issue that you're going to run into if you try to change your whole process is that leads can be converted to contacts... but contacts can't go back into being leads. We have this issue when someone leaves a company, or is erroneously converted into a contact -- we have a general "holding company", but then you need to be cautious with emails that specify company name, or other company details.