CoD
One change would be to make projects CoD. The supplier gets the cash when they deliver, on time, deductions for late delivery (not "bonus" payments for stretching it out). Or the money put in escrow and payments made for successfully reaching milestones on time.
Then, maybe, the suppliers would provide realistic timescales and fees in their tenders...
At the moment, the lowest bidder goes in way under cost, then keeps pumping until they get more than the most expensive bid, and it takes longer. As long as the supplier feels no consequences for being late, in fact they benefit from being late, there is no incentive for them to actually deliver.