You do understand android devices are notorious for doing their own thing when it comes to dns right?
Heres the thing if you tell your reservation to send out dns 1.2.3.4, there is nothing saying the client HAS to use that.. But there is nothing you can do but hand it to the client.
Simple enough to sniff on the dhcp offer, is 8.8.8.8 listed. If your client not using that - that is on the client.
Your options would be to redirect that specific clients IP queries to where you want them to go via a port forward.
The issue has zero to do with the resolver, and zero to do with forwarding on that resolve to some dns using tls.
Validate by sniff your dhcp traffic that your actually offering the client what you want to offer it for dns.. If you are - then its on the client if uses it or not. Nothing pfsense can do about that other then a redirection of clients traffic... Part of the problem with dot and doh - is the iot device might start doing their dns via that - then what the F you going to do ;)
I hand out different name server other than pfsense interface on that network all the time.. To many devices - works as designed.. Give me a sec and will sniff some dhcp for you and show you how it works.
edit:
here... Here I handed client gets handed 192.168.3.10 as its NS
I then change it to hand out 8.8.8.8
did a ipconfig /renew on the client
You see it is now listing that as its only NS
And as you see from the capture the dns it sent it was 8.8.8.8
dns.png
If you validate via sniff that pfsense is handing out the dns you want the client to use - and its not using it.. Then that is on the client, and the best you can hope to do is manually edit it on the client or redirect the traffic from that client from dns.. If its not hiding it in a doh or dot tunnel ;)