If you can get the people of essentialmode to change 1 thing, you can do the uniqueID thing fairly simple. Ask if they are willing to move the steamID to another field (name). Then make Identity make a primary/unique key ID in de DB or something in the Identifier field as unique ID. Most mods would use that ID from then on. Et voila uniqueID
Now you can use Identity to restrict the number of characters based on Identifier (now Unique ID) and steamID (in new field). Also Identity can keep every characters profile alive under the primary key, so all loadouts are saved, cars etc too.
This requires the least amount of recoding. Other mods will use the Unique ID in the Identifier field, automatically out of my head. I think in this way only esx_Identity and essentialmode need to be changed. Other solutions would require all mods to be rewritten and some you still have recode still to eliminate steam checks etc. But I did a little search in my sublime editor and only essentialmode and esx_identity popped up as users of steamid with steam checks.
I would use esx_whitelistadvanced of something like to restrict the server, which is not dependent on the users table I think, but has its own table you can fill with steamID and Licenses.