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.