I'd suggest re-ordering this to take advantage of short-circuiting; there's no need to do the work to compare queues if the worker is on another host or is presently alive.

~~~ ruby
  shares_host?(worker) && unknown_worker?(worker) && shares_queues?(worker)
~~~