I think queue is a good suggestion. There was a great preso at drupalcon sf by jvandyk re: batch v. queue, in case you wanted a high-level on the typical use cases for each.
On 2010-06-01, at 2:09 AM, Chris Skene wrote:Better yet, use http://drupal.org/project/job_queue so that your user doesn't have to wait for each email to be sent.
> Why not try using the Batch API instead?
--Andrew