Reliable commands via SocketClient

Queues commands when the socket breaks temporarily.