So the US has to procure just few enough Tomahawks to make sure the factories that can make them retain some semblance of manufacturing ability just in case. If you check the DoD budget, you'll see that every year we procure fewer Tomahawks for about the same money (which is a lot). That's because we don't pay for the missiles themselves, but for the ability to ramp up their production if the time comes to do that.
But then, how do you get healthy competition to drive down prices? Let's say you want to found a startup to make cruise missiles? Who are you going to sell to? The US is only buying about 100 per year, and thinking hard each year how to cut that number down. You can offer to sell the same 100 for 10 times less money, but they don't care about the missiles themselves. If they switch from their current supplier (Raytheon) to you, then Raytheon will shut down the plant (maybe plants?) that makes them. Can the US trust you that you can ramp up the production when the time comes? Maybe you can prove you can, but that does not happen that often. So we are stuck with whatever manufacturers we have, it's difficult to get new entrants.
What can be done? I don't know. What is China doing better? I don't know that either.
All I can see is the problem is not that easy.