I have always been a fan of a graduated engine rule, basically on your title and win status within the last 3 seasons, so that each engine manufacturer would have different allocations at different teams, might be difficult to explain to consumers (corporate word for fans) but i think it could work. Basically if you win more than 5 races and or a title in the last 3 years you have 3 of each component. If you have a less than 5 wins but have finished within the top 4 of WDC in last 5 seasons, but no title in the last 5 years you have 4 of each component. Other rules would be if a Engine Manufacturer is new to the sport they get 2 extra per season until they score a podium same with new teams, and all win-less teams get an extra engine.
So:
3 = Ferrari, Mercedes, Red Bull
4 = Williams, Force India
5 = Renault, McLaren, Sauber
6 = Haas
7 = Toro Rosso
Or alternatively, just go back to the circa 2008 regulations, with a modern twist, and have each engine component and gearbox do 4 consecutive races like the 2008-two consecutive race rules. It would mean that manufacturers could plan in better upgrades, and even have upgrades for some components take place out of sync with each other? However id make it that Friday power units and engines would be limited to 2 per season. Make the rules simpler.