I did reboot indeed. This is how it is with a fresh reboot:
pi@raspberrypi:~ $ sudo netstat -nltup | grep 'Proto\|:53 \|:67 \|:80 \|:547 \|:471[1-8] '
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 192.168.0.39:53 0.0.0.0:* LISTEN 594/dnsmasq
udp 0 0 192.168.0.39:53 0.0.0.0:* 594/dnsmasq
udp 0 0 0.0.0.0:67 0.0.0.0:* 594/dnsmasq
pi@raspberrypi:~ $ sudo grep 'dns=\|dnsmasq' -R /etc/NetworkManager/
pi@raspberrypi:~ $ sudo netstat -nltup | grep dnsmasq
tcp 0 0 192.168.0.39:53 0.0.0.0:* LISTEN 594/dnsmasq
udp 0 0 0.0.0.0:44205 0.0.0.0:* 594/dnsmasq
udp 0 0 0.0.0.0:10464 0.0.0.0:* 594/dnsmasq
udp 0 0 0.0.0.0:10497 0.0.0.0:* 594/dnsmasq
udp 0 0 0.0.0.0:49940 0.0.0.0:* 594/dnsmasq
udp 0 0 0.0.0.0:25379 0.0.0.0:* 594/dnsmasq
udp 0 0 0.0.0.0:9201 0.0.0.0:* 594/dnsmasq
udp 0 0 0.0.0.0:52734 0.0.0.0:* 594/dnsmasq
udp 0 0 0.0.0.0:15367 0.0.0.0:* 594/dnsmasq
udp 0 0 192.168.0.39:53 0.0.0.0:* 594/dnsmasq
udp 0 0 0.0.0.0:67 0.0.0.0:* 594/dnsmasq
udp 0 0 0.0.0.0:21089 0.0.0.0:* 594/dnsmasq
udp 0 0 0.0.0.0:50293 0.0.0.0:* 594/dnsmasq
pi@raspberrypi:~ $ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 192.168.0.39
nameserver 127.0.0.53
search fritz.box
pi@raspberrypi:~ $ pstree -s $(pidof dnsmasq)
systemd───NetworkManager───dnsmasq
pi@raspberrypi:~ $ sudo grep 'dns=\|dnsmasq' -R /etc/NetworkManager/
pi@raspberrypi:~ $ sudo grep 'dns=' -R ~
/home/pi/.bash_history:sudo grep dns= -R /etc/NetworkManager/
/home/pi/.bash_history:sudo grep dns= -R /etc/NetworkManager/
/home/pi/.bash_history:sudo grep 'dns=\|dnsmasq' -R /etc/NetworkManager/
/home/pi/.bash_history:sudo grep 'dns=\|dnsmasq' -R /etc/NetworkManager/
I am guessing that raspberry pi (Buster/10, pi3B+ FYI) is indeed calling dnsmasq from NetworkManager.
FYI, I had put under /etc/NetworkManager/NetworkManager.conf the dns=none, but it was still calling dnsmasq.