You could instead WireGuard split tunnel dns traffic and serve it with Pi-Hole or forward it to dns.aguard.com if you do not really require analytics or use unbound with block lists to resolve names recursively.
The gist is, on the client configuration:
1. Set DNS server IP against allowed IP in the peer (which is your wireguard server) section.
2. Set DNS entry to the same IP as above for the client interface.
Ref the discussion and the linked blog post (that talks abt Pi-Hole with wireguard): https://news.ycombinator.com/item?id=19544532, https://www.reddit.com/r/WireGuard/comments/bqccdz/split_tun...
DNS = <public-resolver>,<private-reslover>
...wouldn't work?
Edit: per discussion on r/Wireguard, looks like one soln is to run dnsmasq locally on ::53 and forward public queries to the VPN/DNS provider of your choosing and resolve private queries locally.
https://www.reddit.com/r/WireGuard/comments/cmhap6/use_both_...