According to accounts at the time, the original team on this project was working late nights long before the failed September deadline. Their attempts to inform government that they will not make it were cut with "failure is not an option". Are you saying that this situation would be impossible with in-house team? There were reports of contractor fighting government over scope, are you saying that in-house team would win that fight?
There was no one in government side with power to say "no" to features and with power to prioritize. Are you saying that such political power would magically appear in someone if they would use in-house team? There were reports of stressed governments people coming to contractor site in person all of sudden and forcing developers to show them not done yet hopefully cool features (nope not login, none of them cared about sign up and load problems). I am not making this up. Are you saying that the same geniuses would left in-house team alone?
There was no one officially responsible for integration of parts done by various companies and integration testing. Would the same management put aside time and resources for that work if the companies would be replaced by in-house teams? Well, maybe a little on this one, but I doubt they would put aside enough.
Plenty of outsourcing contracts have set price or deadlines and penalties for breaking them. Plenty of them are not paid on hourly fee basis. At least one of contracted companies has history of failures under their belt, so they are hardly innocent in the whole failure. That does not make government management more sound. It just makes them equally guilty at worst.
"For an in house team who do their own maintenance, the same things mean embarrassment, late nights, and possibly getting fired. So scope creep and avoidable complexity are bad for the in-house team."
There are few problems with this assertion:
* Scope creep is problem beyond the tech team. Scope creep happens to in-house teams of private companies as often as it happen to contractors. That one can be solved only someone with real political decision making power cooperates.
* In-house team does not get much embarrassment after failed deadline and firings usually does not happen after them. The thing is, if the management is competent, management knows the deadline will be failed in advance and have a plan for that. Deadlines are failed for various reasons overly optimistic estimates being the primary one.
* Most importantly, good management does not fire people after they failed important deadline due to laziness. Good management replaces lazy incapable people long before and does not assign mission critical tasks to unproven people. Management that ignores problems and then comes in all guns blazing after predictable failure is bound to build quite horrible in-house teams.
Managing contractors is somewhat different then managing in-house team, but both require sound management to succeed. You might be somewhat better at managing one vs another, but you are unlikely to be great in managing in-house team while being total failure in managing contractors.