There is no reason for walinuxagent.service to Want
cloud-final.service. That could cause problems if cloud-init was
disabled.
There is also no reason for it to need to run After cloud-final.
Instead replace that with After of cloud-init. That will ensure
that cloud-init in its datasource code has an opportunity affect
walinuxagent before it starts.
The need for this is because cloud-init was starting walinux.service
during cloud-init.service, which would cause unresolvable
cyclic dependencies.