It's only going to send a notification if CB Activity would log a notification. So there are times where it's not going to send such as duplicate notifications or notifications to people that aren't set to receive that notification. That is the only way to extend CB Activity notification behavior. I've nothing more to suggest right now beyond just making emails for specific triggers (e.g. onAfterUserRegistration, onAfterJoinGroup, etc..). The trigger is defined as follows.
Code:
$_PLUGINS->trigger( 'activity_onAfterNotificationEntityStore', [ $this, &$notification, $new ] );
It's possible you may need to check for var3 being true or 1 in your auto action conditions. This ensures it only sends an email for newly created notifications. That maybe where the sporadic behavior is coming from as it could be sending during edits. getRecipients() basically just returns a list of user ids that the notification was logged to in the _comprofiler_plugin_activity_notification database table and that's it. So if a user doesn't get your email then they never not the notification to begin with.
We won't have a universal notification system until sometime in CB 3.x. It'll be your standard notification you might of seen on other sites with the name of the notification then checkboxes for email, private message, sms, on-site, etc..