Really just have to find a balance somewhere. The current system really only wants to send e-mails when you're not on line, because they're very spam-y and require you to be watching your e-mail instead of the site. I certainly don't watch my e-mail that often. Between the delay of the site sending the e-mail, your e-mail service accepting it, and then whatever delay your e-mail client has in polling for updates, this can potentially be about 20-30 minutes before you realistically see the e-mail about the new post, making it completely unreliable in terms of immediate notification.
This is why it focuses mostly on people who are not online. If you want the immediate notification, the only realistic option is something on the site - either a toast, the inbox, or the suggestions to move the inbox to a small version to connected play (or just duplicate it there). Consequentially, some leaving the site because they were tired of checking the site is never going to go away.
I also really, really don't like the idea of tying e-mails in any way to your viewing of content. If we're talking about making it more predictable, we have to simplify the rules as much as possible, so it can be immediately understood, and recognized when it will cover you or when you won't. Remember, the whole reason people find it reliable right now is because it's tied to page views!
But of course, sending e-mails with every post will get spammy, no matter what. There's a few more reliable ways I can think of preventing e-mail spam:
- Do not send an e-mail about something which I already have (one or more) inbox notifications for.
- Do not send an e-mail unless the second to last IC post is mine.
- Do not send an e-mail unless it is my turn to post.
The issue of "missing toasts" is another matter entirely, and should be solved with appropriate suggestions about moving inbox notifications into chat.