While using sleep() to fix thread complications is never a great solution, it gets the job done for now.
It's worth noting that RubyDNS currently displays a lot of messy output. This needs to be addressed before moving any further.