So you've got your CS graduate which you recruit and pay $40/hr, slap a badge on them and rent them out for $120/hr. Once in a while you fall short and need to hire some freelancers for $60/hr. That's it.
As your gov agency is capped on paying it's own recruits $25/hr for the position, very few will end up as 'native' gov workers, and the once that do will get poached swiftly by the consultancies.
Now these juicy contracts are not sold piecemeal, but in huge bulk. Not 3 guys for 2 months for a project, but an umbrella contract for delivering 2.000 full time profiles over the next 2 years. Very few consultancies can credibly fulfill on such commitments making the market fairly small and not too competitive. The few that participate have no incentive to spoil the roost and derail the gravy train. No explicit collusion is required. It's an iterative prissoners dilemma situation where the few players all know each other and frequently switch sides.