The fact that it's a natural monopoly makes it susceptible to a lot of the same problems as a government, but making it an independent entity actually mitigates them somewhat by reducing the size of the bureaucracy. One of the big problems with elected governments is that the Republican wants to install a corrupt transportation board and the Democrat wants to install a corrupt school board and you have to pick your poison. If you get to elect the directors responsible for local transportation separately from the directors responsible for local schools, that doesn't happen as much.
It also helps quite a lot to move as much of the spending as possible to as local a level as possible, because then you don't get wasteful pork motivated by a desire for inter-region wealth transfers.
The problem is some combination of corruption and regulatory requirements. If the bureaucrats write the contract in such a way that only one company can satisfy it, that company has no effective competition so they don't have to compete on price. Same thing if the contract requirements, or the paperwork required to enter into the bidding itself, are such that smaller entities need not apply and you again have insufficient competition to drive down prices.
But none of that goes away by bringing the project in house either, you just trade corruption and high costs by contractors for corruption and high costs by public sector unions, and in that case there is explicitly not even the possibility for competition.
So you still either have to solve the corruption and bureaucracy somehow (effective method unknown), or move the project entirely to the private sector, e.g. by using the money instead to make tax cuts for regular people or transfer payments so that instead of government housing projects you leave people with the money to buy market rate housing directly, or whatever else they need.