This is one of those things that if you really want to do it, you’ll have to live with the consequences.
I’m an American that VPNs everything first to my VPS then down a double hop commercial VPN tunnel that finally exits in Switzerland. DNS traffic also travels over that VPN tunnel so you’ll rightly guess that my DNS is rather slow too.
What I do is I run a resolver on the VPS (physically near me) that aggressively prefetches commonly queried DNS records. After years of using Unbound I found Blocky to be much, much faster (especially with huge blocklists). It’s to the point now where sure, it’s slower than a “normal” internet connection but it doesn’t feel slow to me anymore.