皆さん、ご回答ありがとうございます。
しばらく別タスクで離れていたので、いただいた回答の方を対応できていないので、まだ解決済みと出来ていませんが、確認次第対応したいと思います。

別件の問題が発生しており、pythonのsocketのタイムアウトについて、以下の問題がありました。

・socket.gethostbyaddr: 指定したタイムアウト時間(0.5秒)でタイムアウト処理がされない
・s.gethostbyaddr: そもそも実行が失敗する

def socket_test(self, ip):
    socket.setdefaulttimeout(0.5)
    s = socket.socket()
    print(socket.getdefaulttimeout())  #0.5
    print(s.gettimeout())  #0.5
    s.settimeout(0.3)  # 不要だが念のため
    print(s.gettimeout())  #0.3

    # 実行
    print(socket.gethostbyaddr(ip))
    # print(s.gethostbyaddr(ip))  #こちらはAttributeError: 'socket' object has no attribute 'gethostbyaddr'

デバッグのためにprintをいれており、タイムアウト値が設定されている事が分かっています。
実行の後者がエラーになるのは分かりますが、前者でタイムアウト値が適用されていないのはよく分かりません。

後者のs.のgethostbyaddrが実行できるのが理想ですが、socket.gethostbyaddrでタイムアウトが正しく適用できる状態であればそれでも良いのですが、どのようにすれば実現できますでしょうか?

テストに使用したIPは
・すぐにホスト名が取得できる任意のIP
・すぐにnot foundが取得できる任意のIP
・Linuxのhostコマンドを実行しても10秒以上掛かってtime outになる任意のIP

の3パターンです。