Moving to ifupdown. systemd does not configure the network (unless you set them up in networkd, but we don't do that anywhere automatically and there's no evidence that you did, and it's networking.service that hangs).
I also don't see much wrong about this, except maybe that interfaces.d/50-cloud-init.cfg and interfaces.d/eth0 both configure eth0. But the latter (created by cloud-init I suppose) is a dead file as /e/n/interfaces only includes *.cfg files, so that shouldn't matter.
Moving to ifupdown. systemd does not configure the network (unless you set them up in networkd, but we don't do that anywhere automatically and there's no evidence that you did, and it's networking.service that hangs).
I also don't see much wrong about this, except maybe that interfaces. d/50-cloud- init.cfg and interfaces.d/eth0 both configure eth0. But the latter (created by cloud-init I suppose) is a dead file as /e/n/interfaces only includes *.cfg files, so that shouldn't matter.