Use Iterator to send fragmented messages

Avoids some annoying lifetime problems with Mutex