Network manager breaks pi-hole

dns=none or by omitting that directive should provide the expected behaviour according to the man pages:

dehakkelaar@laptop:~$ man NetworkManager.conf
[..]
       dns
           Set the DNS (resolv.conf) processing mode. If the key is
           unspecified, default is used, unless /etc/resolv.conf is a
           symlink to /run/systemd/resolve/resolv.conf,
           /lib/systemd/resolv.conf or /usr/lib/systemd/resolv.conf.
           In that case, systemd-resolved is chosen automatically.

           default: NetworkManager will update /etc/resolv.conf to
           reflect the nameservers provided by currently active
           connections.

           dnsmasq: NetworkManager will run dnsmasq as a local caching
           nameserver, using a "split DNS" configuration if you are
           connected to a VPN, and then update resolv.conf to point to
           the local nameserver. It is possible to pass custom options
           to the dnsmasq instance by adding them to files in the
           "/etc/NetworkManager/dnsmasq.d/" directory.

           none: NetworkManager will not modify resolv.conf. This
           implies rc-manager unmanaged
[..]

What does below show ?

sudo NetworkManager --print-config

Maybe the logs can give some insight.
Could you add below section at the bottom of the /etc/NetworkManager/NetworkManager.conf file:

[logging]
level=TRACE

Reboot and post results for below one ?

sudo journalctl -u NetworkManager | grep 'dns-mgr\|dnsmasq'

Remove those two lines when finished or the systemd journals will grow large.