Not excusing the rental companies, just playing devil's advocate.
Is it possible some of the problem comes from other renters not returning cars when they're supposed to? Are the rental companies like hotels, limited in what they can do to guests who overstay their welcome? I don't know -- I'm just raising the question. Since their reservations systems worked so well for so long I have to presume they're programmed to take into account expected return times.
If there is nothing preventing it, I'd say the solution is fairly simple. If you're late returning by more than, say, 3 hours (to allow for unexpected contingencies), you get charged three times the base daily rate -- no discounts applied -- for the overtime. Some people don't care how what they do affects others, they just respond to financial consequences.