I recently dove down a somewhat similar rabbithole. DNS is a mess of addons over the years to an originally minimal protocol. I wanted to see if it was possible to replace dns entirely. In short, its not. You can easily write your own resolver to do whatever you want, and easily add it to the windows or linux stack. Everything immedoately falls apart as soon as you start talking about MX, TXT, and other records dns provides. It turns out most of these lookups are handled by other libraries and you cannot replace them since they are engrained in the app needing to do the lookup.
Unfortunately, dns is so engrained in the internet, theres no way to replace it without replacing the internet