Task session is no longer closed if the socket.io connection is lost.
Instead, in the client, if the socket connection is lost it updates the
session to status of reconnecting. When the socket reconnects, the
status is changed back to active.
This prevents work sessions from simply ending and dying if the socket
connection is lost, and lets the client drive all of that directly.