invoke close in eventloop

When disconnect is converted to close (for transports that lack the concept of disconnect), the close is not being executed on the event loop.  This results in ordering problems with handler callbacks.