I wonder about the trade-offs in writing a completely new server compared to a backend for BIND or PowerDNS.
We had some success with CoreDNS (over BIND et al): https://coredns.io/manual/toc/

Switched later to OctoDNS, mostly because we didn't want to run DNS infrastructure or deal with racing updates to records: https://github.com/octodns/octodns