There are many times where dnspython2 wants to call back into the system resolver now (socket.whatever). That doesn't work because the system resolver is gevent, which uses dnspython2, which calls the system resolver, which…ultimately ends up crashing the interpreter in a recursion error.
dns.resolver.query is now deprecated and calls through to dns.resolver.resolve, as do many other things (rthalley/dnspython@997e913). Our resolver implementation doesn't have that.
It may be that the two changes together mean that our DualResolver isn't really needed anymore?