Workflows, Validation Rules and Before triggers fire on Lead Conversion only if the Setup > Customise > Leads > Settings > Enable validations and triggers is checked.
It might be worth checking if this setting is enabled, because otherwise the Lead Status value will not be synced to your custom field on Lead Conversion via workflow, and therefore not be copied across.
(Even then, I believe the Lead Triggers / Workflows fire after the Account and Contact ones, so it may be to late for the Lead Status to copy across)
The order of execution at Lead Conversion has been answered here
This can be achieved by a trivial LeadAfter trigger, or if the Lead Status is always set to Qualified upon Conversion, then you could set 'Qualified' as the Default Value on the Contact Lead Status field.
(One way of doing it also may be to only allow 'Qualified' Leads to be Converted - this can be controlled by having a different layout for Qualified Leads, when the status changes to Qualified, a workflow fires - changes RecordType to QualifiedLead and therefore associated Page Layout changes, which now has the Convert Button. With this approach, the Lead Status at conversion is available in advance and available to be copied across at Lead Conversion)
Generally speaking, we create Automations that do a Query/Extract/Import to All Subscribers for any email address that's associated with an unsubscribed Subscriber Key. This obviously doesn't prevent the duplication, but it honors the unsubscribes.
Clients unknowingly create duplicate subscribers all the time, but this is an inherent duplication in the platform and is tied to billing.
Best Answer
This sounds like a one-time activity. I would suggest you run a report (or use Apex Data Loader) to extract your Contacts (along with the Record Id) into Excel. Go through that and figure out what you want to convert and delete, put that into a CSV file.
Then using Apex Data Loader you can load the file as an "Insert" into the Lead object and once you've verified that was successful you can take that same file and load it as a "Delete" into the Contact object.
Because Leads and Contacts have so many similar fields it should be easy to map the Contact extract into the Lead object.