It is a bit of both.
It is really hard to write a good contract that can handle the scrutiny of a public bidding process and it is really hard doing it when paying staff the wages that NYCHA likely pays the staff managing their contracts.
The jobs have gotten outsourced since NYC in general has found keeping staff on hand to be incredibly expensive, but the model of contractor maintenance is to make money where possible, not to serve the best interest. It is really hard to write a contract that makes serving the public good a money maker for the winning contractor.
Why do you think there is so much disparity between your bosses and your clients?