So, thematically, the Warlock is a caster who has made some kind of bargain for their magic. But the "cost" aspect of the class is mostly left to the DM to decide and act on, or not act on. Maybe your patron asks you to do little side quests or something, which is fine, but there isn't any mechanical benefit for doing them nor is there a consequence for ignoring them (beyond passing up a role-playing opportunity.)
This all sounds like I am advocating some kind of paladin-like behavioral stipulation for the warlock, but I don't think that is a good idea, and I would rather not get into that topic here. I only bring it up because I feel like it shows how mechanically, the warlock kind of fails to live up to its purpose as the magic-from-a-bargain class. In fact they seem to specialize in getting free stuff, which is decidedly un-bargain-like.
So my thought was to simply give the warlock a new ability that allows them to sacrifice hit dice to their patron in exchange for spell slots. In essence they are giving their patron a portion of their life force in exchange for more power. I think putting a limit on the number of transactions they are allowed in a day would be necessary, maybe something like 1 transaction per 5 levels.
I am also of the opinion that the Warlock is perhaps a little underpowered and giving them this ability wouldn't unduly unbalance the class.
Just kind of spitballing, here, wondering what you folks think.