DDclient (or an alternative) takes care of the IP change and wireguard is as good as stateless anyway.
Wireguard connects to an IP endpoint. It does not resolve the domain for each packet.
Maybe this has to be solved on the application layer then. All I can say is that my setup with a dynamic DNS entry and WG tunnel on android works flawlessly.
Gotcha but a restart every IP change and you’re good.