Hi,
Great idea! I was planning a module to make it possible to distribute the load of sending mail over several servers... But you already did.
The only thing that is missing is a status for messages that they have been selected to send. This is also a potential problem when using poormanscron.
I think that the selection of the queue needs to be different.
First one should update X mails in the queue with a status "currently in progress" together with a unique id (UUID or host+pid) for the script responsible. After that you can select those rows just marked that they are in progress by the queue. You should register a shutdown function to prevent that a mail stays in the "currently in progress" status on a script break.
This way you prevent mails from double selection, even if you have 100's of Queue processing scripts running at the same time.
I have written a patch for simplenews for the same issue that comes up with poormanscron and simplenews:
http://drupal.org/node/361071
The cool thing is that you then can have multiple servers cleaning out the queue, while having huge performance on the server that sends out the mail.