Notifications might have a huge overhead for actions, not sure about KVO. Both need to be carefully unregistered as well, and you don't have close control over the action's lifecycle.
Is it possible to wrap an action in a sequence that has the original action and a block action? Do you really need specific triggering information on an existing or already scheduled action without be able to substitute it?
It's not impossible to to add more features to actions, but at the moment they are one of the biggest CPU hogs. I think we need to be really careful about adding more overhead to them until we can optimize them better. Triggering callbacks when an action completes is something that the action API already basically does, adding a second way to do it seems like it should be avoided if possible.