How do you have your Pi connected to your network and what is it's assigned IP address on the network? In your debug log you have Pi-Hole listening on the Pi loopback address (127.0.0.1).
What port is unbound listening on?
I don't quite understand what you are doing here. Why don't you want to use embedded dnsmasq?
What is the flow path for a DNS request from a client to a final return of an IP address?
Is it client > unbound > Pi-Hole > DNS resolver (in your case 9.9.9.9, etc.)
My router is not a raspberry but a apu from pcengines. But quite same.
I use from years an unbound dns server with a lot of local entries configuration. I just made pihole running on localhost only on port 5353, modifying the dnsmasq conf (which is lost at every updates)
I use the pihole dns as a forwarder on unbound server, in place of classic internet dns.
It's running very well but quite slow.
For a client, the dns is the router. The unbound responds (for local entries) or ask pihole on localhost:5353 for internet entries.
Technically it's not different as standard usage. Normally its :
Client -> unbound (router) -> internet dns forwarder (9.9.9.9)
Here it's :
Client -> unbound (router) -> pihole (router) - > internet dns forwarder (9.9.9.9).
It just seems this add 80ms ton resolution time :s