Fixed bug in error handling. If task was cancelled (threw and exception), it would remove the task on the node which invoked the task. When receiving responds from other nodes, the task would've been cancelled so the response would be ignored, however, drainClose() on auto buffer attempted to read all data until connection was closed, which now does not happen (sending side waits for confirmation from the reader that he read all data ok + connection can be reused).

Changed drainClose to just close the channel, and updated the other side to handle cancelled tasks by testing if the task has been removed(received ack ack) in the tcp retry loop.