In fact, AdGuard app for iPhone does basically this, it install itself as an always on VPN to hijack DNS queries from apps..
You dont even need containers or VM for AdGuard, it have a windows version that you can install as a service and then just point the DNS to localhost..
For Pihole i seen guide that use WSL to run it locally, but using containers in this case might be easier..
I dont know Technitium so cant comment on it, but quick search it look like it also have a windows version so it might not require containers as well..
It is not the usual configuration but it work.. In this case i would point AdGuard to use whatever DNS is available in the local network so you do not loose access to local stuff..
If you are on a laptop it will require some manuall managing unfortunatelly, but if you are on a fixed network you just need to set it up once and forget about it..