Unfortunately fixed price contracts are only as good as a companies ability to deliver. Some projects are going to make more sense with cost plus. We should not expect a JWST to be built with fixed price. There are too many unknowns and companies could be forced to make dangerous compromises to stay on budget.
Boeing has not delivered with Starliner. If they had been on cost plus they possibly would have still been late but delivered a crew to ISS by now and had less problems. I suspect many of the delays have been caused by insufficient funding of the development by Boeing management. SpaceX is an outlier when it comes to delivery and commercialization. Orbital did a great job with Cygnus/Antares but they never commercialised it to bring additional volume and savings and that is possibly going to be the situation with a lot of these fixed price contracts.
I think fixed price is a win but for it to be really proven a company other than SpaceX needs to deliver a great system to NASA and commercialize the shit out of it to bring additional innovation and savings.