Well my PiHole uses the DNS servers from CloudFlare so I don't actually self-host DNS, but having PiHole as DHCP server was the only way for me to have all my devices going through the PiHole.
In the end I literally had to give up, it's just too problematic.