we used to lock the node for this entire packet encoding process... but actually, we don't need to do that. We don't need to worry about the node itself being deleted, because it's a SharedNodePointer, so it won't get deleted if there's a reference. 

The only other concern we have is the socket/address going away on us... but that's easy since we only use that when we actually send the packet... so we're moving our lock to that code. so that the node is not locked for MOST of the time.