Sad news is gethostbyname blocks under the hood in the system library, not in ruby's code.
But webrick's issue might be resolved already by issue #6559. Can you try the latest trunk to see if that fixed your problem?
It seems not a reverse lookup issue, but a forward lookup issue.
It sounds reasonable to delay the call of Utils.getservername so that
users can override ServerName, in which case there's no need to call
Utils.getservername.
There is no need to call Utils.getservername when the :ServerName option is
specified, so delay Utils.getservername until needed to avoid unnecessary
DNS lookups. [ruby-core:78492] [Bug #13007]