PiHole as DHCP and DNS for multiple VLANs & subnets

Not in that file, anyway.

Pi-hole's Interface listening behaviour is accessible via its UI, and it affects DNS as well. For your purpose, you'd have to change it to one of the Listen on all interfaces options.

You'll find the corresponding option in 01-pihole.conf, and I strongly advise against customising it in any way, i.e. do not change that file and do not add a separate custom file with additonal interfaces.

It would seem dnsmasq's documentation doesn't mention specifying a network interface for the dhcp options you are using.

You could consider using tags to tackle your issue..

dnsmasq would assign DHCP leases from a dhcp-range matching the address/subnet of the network interface that the DHCP request arrived on.
This may also mean you have to add a separate interface for each of your VLANs.

Try using the following

dhcp-range=set:vlan66,192.168.66.10,192.169.66.200,24h

The above line also defines a tag named vlan66. That could instead also be IoT or whatever seems appropriate to you. The name itself isn't signifcant, it just acts as a unique identifier.
That tag can then be used to configure a subnet specific dhcp-option only distributed for matching tags, in your case, e.g.:

dhcp-option=tag:vlan66,option:router,192.168.66.1
dhcp-option=tag:vlan66,option:dns-server,192.168.66.2