If you want competition, perhaps the simplest way of doing it might be for municipalities to provide universal service at layer -1: run an underground plastic pipe to each house from the street. That way it suddenly becomes cheap for multiple telcos to run fibre to each house, but the municipalities aren't doing anything with an ongoing technical burden which they might be bad at, or running an ongoing service which might be subject to some kind of capture.
Of course, this assumes that laying a pipe isn't drastically more expensive than fibre, which I don't know.