[minor] only emit reconnect when we're actually starting a reconnect procedure.
[minor] Use stop instead of close, it fixes, things.
[test] Adding a test for reconnect support.