I understand where you're coming from, but the value proposition is pretty enticing to groups like NYC government. A consulting group reduces their legal liability (if something happens, the consulting firm is at fault, or the consultant themselves). It sharply reduces ongoing payroll on the books. It reduces the need for HR departments, because that's the job of the consulting firm. And hopefully, if you're smart when you make the contract, you get more workers and more skilled workers for the money you spent than you could get by direct hire. Now, obviously in this case, the workers that were provided were unskilled and failed at their tasks, so cancelling makes sense. And if the consulting firm isn't a bunch of scumbags, it's good for everyone. The City gets tasks completed and doesn't have to maintain a pension or the like, the consulting firm makes a huge pile of money and can parlay their learnings and platforms into providing other services to the city or local governments, and the contractors/consultants get to have control over their employment and a wide range of experience across cases.
Obviously the moment one group gets too greedy without the others responding (as has happened), you get situations like this.