With no offer/answer to carry a rejection, ending your candidates without ever
having sent one is how a peer says no. This checks both halves of that:
Conn fires refused and closes when it happens, and
does not when the trailing null arrives after real candidates — which
is the normal end of gathering and must stay harmless. Needs no server.