Returns the first peer clockwise of taskId's position that is NOT in excluding, or null if all roster peers are excluded.
Use this as the failover hook: pass the unreachable owner (and any other known-down peers) in excluding. The result is deterministic for the same inputs.