How do I send email to a large number of Drupal users, based on rules?
The Mandrill module (combined with the Mandrill service) lets you send transactional emails (and, theoretically, bulk emails) very quickly. It has a built-in queue feature which adds outgoing emails to a cron queue.

Note that the Mandrill service requires you to build up a reasonable sender reputation before you can send many emails at the same time - there are hourly limits that increase automatically. And of course it can cost money.

The Queue Mail module is a general-purpose solution to queue outgoing emails, if you don't want to run Mandrill or other modules that have their own queueing.

Regarding cron: Drupal's built-in cron triggers all repeating tasks to run at once, which means it can be very slow for complex sites. Many cron tasks don't need to run that often, and many of them shouldn't run often (for example, the system cron clears caches, which can really slow down the site).

So you can use the Elysia Cron module to manage cron jobs more effectively: it allows you to separate tasks so that the ones that are fast and need to be frequent (such as Mandrill cron) run say every minute, while the ones that are slow (such as system cron) run every week.

The Ultimate Cron module is an alternative to Elysia Cron - I haven't used it recently so I'm not certain that it works well.