I have a philosophy of sticking close to reference implementations and upstream in the homelab because it forces me to learn principles rather than implementations. I use bind9, but that upstreams to pihole on a different port. It is hard to configure for sure, editing zone files in vi, but I learn a lot analyzing the reference syntax to understand features. I also use isc-dhcp-server for DHCP, again manually populating dhcpd.conf.
Bind can peer with other instances; right now it is it’s own ipam vm on my proxmox with bind/isc-dhcp/pihole docker, but I’m looking at dropping some hardware at a family member’s for a site 2.
This may not be exactly what you want, but I use Apache guacamole for this. The client becomes a web browser, and a chromium based browser allows seamless bidirectional clipboard. I use Ubuntu VMs with Mate as the DM and with a few keybinds tweaked it is solid. I use tightVNC as my server which supports dynamic resize, and the soon to be released guacamole 1.6 supports sending dynamic resize (since the underlying libraries are now updated to support it; RDP in guac already supports dynamic resize). How performant is it? I have a single proxmox vm which runs 3 Minecraft instances for our server’s 3 bot accounts (which just stand still) and the desktop is still navigable.