in reply to sendmail code running extremely slow

I looked up the man page for sendmail on my bsd-based mac, to check the options you use, and I was struck by the description of "-t": "Extract recipients from message headers. These are added to any recipients specified on the command line."

I have no idea whether that would have any impact (it probably wouldn't), and to check, you would probably want to switch to a multi-arg open, to make sure that email addresses wouldn't screw up the command line:

open( MAIL, "|-", $mailprog, "-oi", $to ); # ... or die?
(My man page also indicated that "-n" is ignored (backwards compatability).

I have used Mail::Send to good effect -- that might be worth a try as well, esp. since it's usage is not very different from what you are doing already.