I suggested something once years ago, I'll briefly mention it again. Originally I had mentioned it because of the LTIR loophole which has since been closed.
Luxury tax, similar to the NBA. Keep the cap the way it is, add a luxury tax with a limit.
For example, cap is 113M, all teams have access to another say 15-20M
For going up to 5M over the cap, teams would pay 50% that amount in luxury tax (Team X goes 5M over the cap, they pay 2.5M in tax)
For going 5.1M to 10M over the cap, teams would pay 75% that amount in luxury tax. (Team X goes 10M over, they pay 7.5M in tax)
For going above 10M over the cap, teams would pay 100% that amount in luxury tax (Team X goes 20M over, they pay 20M in tax)
That tax money is then accumulated throughout the league and distributed among the lowest earners (kind of like revenue sharing)
It allows team to spend a bit more if they have to, teams can keep homegrown players, they can offer the extra year at a higher price if they want
It wouldn't just benefit the rich teams, smaller market teams would be given X amount of extra cash, which they can now spend on their roster as well