Lock is not released until the Send() returns.
Taken together with #125 this means it can hold a lock forever.
Sender and receiver each maintain state including a sequence number, so if we unlock before calling Send() it's possible that messages get out of order.
Seen at weaveworks/weave#3762