Honour requests to close NOW

...even if we have previously asked to close later. Many places in the
codebase use ScheduleClose(false) when they have found out that the
socket is no longer operational, but they are being ignored if
ScheduleClose(true) has been used in the past. As the socket is often
not working at this point, we will never get through the send queue and
actually do the close.