The road layout looks good. In order to work well, the roads will need houses. And there it gets complicated.
In algorithm you also get a list of regions between roads and its possible to terminate division to get regions of sufficient size or mark regions for placement of houses of different sizes. You can set the size of "city" where roads will be and also remove some roads at end to give it more random shape.
I'd love to have straight roads that connect the villages to each other.
What you would need is some shortest path between 2 points on surface (many algorithms for that, but they get complex with distances), that ignores connections that would go up/down too many blocks. Assuming villages are not too far away (around 200 blocks) that could be done. Now if you would allow for tunnels/bridges you could get it straight, otherwise no.