I know it's impossible , but > There is one solution to keep the development race, while keeping the costs low:
If FIA could become a contractor ( customer ) for the engines, and not the teams. They could make contracts with 3-4 engine manufacturers. Then teams could get these engines at fixed price/season, and they could choose which design is best suited for them. Every team would pay the same amount to FIA every year for the engines, and that will be the cost cap. The development freeze would still be applied, and would be lifted only between seasons for a few months to allow development, but the manufacturers wouldn't get more money for that. Then if one team thinks that other engine will be better next year for them, they would have a fixed period when they can choose.
They could apply this rule to tyre suppliers too..It could bring the competition in, and keeping the costs low.
Yes, it could happen that one given year, one of the engine manufacturers makes much better engine then others, leading to domination of some teams, but next year others would have another shot to match that.
Yep, I know... just an idea...nothing to see here..carry on