This makes some weighty assumptions.
First, I think we can safely say that Airmail doesn't have 10M accounts to check. Most users are going to have one account, far fewer with two, and so on. (fwiw, I have three; but I know I'm an edge case.) But let's go with it.
Next, not every account will have push activated, nor will each have push available.
Next, if you run OS threads per processor, then you're doing it wrong. For example, even if we take the 10M accounts as correct, then you can spin up that many erlang processes simultaneously on a single 32Gb instance of some VM. (erlang processes are approximately 8Gb minimum per 3M (on a 64-bit system).) A dedicated CPU 32Gb Linode runs 120 USD per month.
Now, there's more to it than that, of course, including a database (as you mention, although scheduling is simple per process) though there are many ways to limit the checking. However, this is not something that requires large scale infrastructure along with its associated costs.
At bottom, you're just pinging endpoints and sending notifications based on results. Trivial stuff, even at massive scale, which this isn't (by today's standards).