In my group there is a person with that specific responsibility. They communicate the possibility of not meeting a deadline and make contingency plans to get the best result given the circumstances.
That person should be fired, and IIRC they have already resigned.
Now find senior advisors who weren't responsible for communicating the risks but knew about them anyways. Ask them why they didn't communicate the risks to the President and based on their answer either fire them or reprimand them.
Send the message that there will be accountability. Why is that important? Unfortunately, be it in Government or the private sector, there is a culture of "that wasn't my job". Everyone knows the project will fail, every single fucking person from the junior engineer to the senior project director know. But everyone winks at each other across the table at meetings and agrees that "failure is not an option, it will be done on time". And inside their heads and within their small groups everyone is saying "well it's not my job to sound the alarm". There is no incentive to take that political hit and say "Boss, we might have told you several times that everything is OK but honestly there are some severe risks to launching by the deadline and we need to start planning for a delay or reduction in features". Instead, when shit hits the fan it's like a mexican gunfight, everyone points a finger at someone else and says "well he knew too" or "that wasn't my job to bring up that this would never work."
Engineering is hard, failure happens. It really shouldn't be punished (except where people just failed to do their jobs), instead it should be learned from so that the same mistakes are not made again.
One day, when software engineering management is a real discipline, they will pound it into the heads of MBAs and PMPs that failure is not only an option, its the most common result so make sure the lines of communication are open, that people feel comfortable communicating risks and saying no, and that all the stakeholders know that the engineers cannot travel through time, so if you start a 1 year project 9 months before you want it to launch then you are SOL and have to pick what features are most important.
I hate "you have more than one number one priority" more than "failure is not an option" and I feel people who say one usually say the other.