Duplicate Lead Properties

We currently have setting for when customer object lifecycle stage equals “Lead” it will create the lead object. We have several things happening that is creating duplicate lead objects. At the end of the day we only want 1 contact to have 1 lead object:
1. When a contact record is merged, since both Lead objects remain it would be nice to be able to merge lead objects similar to how contact objects are merged (or when contact record is merged, then merge the lead objects as well).

2. We would like the ability to use a workflow or list to identify and delete duplicate lead objects. At the moment there isn’t Number of leads property that can help us track this so we wouldn’t be able to use workflow to essentially identify if there is more than one lead associated to a contact nor is there a Delete a Lead record Action.