DNS issues have, more often than not, caused networking slow downs for me. Running a recursive DNS server on a home network is quite a bit slower than using a public DNS server on a high speed network; the slowdown with a local cache is less, but still there. Just directly using 8.8.8.8/8.8.4.4 or 9.9.9.9 or 1.1.1.1 or 4.2.2.1 is best (faster, more reliable) in my experience: Fewer moving parts. There are significant privacy and security issues with using DDNS addresses which can be resolved by public DNS servers.
For the record, I have written a DNS server from scratch. Three times, actually (try 1, which is still the authoritative DNS server I use for my domains, try 2 which is a tiny caching DNS server, and try 3 -- which, yes, reuses code from try 2 -- is a very flexible DNS server which uses Lua for configuration).