I'll specify my thought. UNA has the alert system which means the places with the code like
bx_alert($this->getName(), 'profile_created', 0, 0, array('override_result' => &$mixed, 'remote_profile_info' => $aProfileInfo));
Those callings are everywhere in UNA. So it means to add the processing of the necessary event you may just add the proper handler for it. The alerts handlers are introduced via MySQL commands like Dolphin connect has for example:
INSERT INTO `sys_alerts_handlers` SET `name` = 'bx_dolcon', `class` = 'BxDolConAlerts', `file` = 'modules/boonex/dolphin_connect/classes/BxDolConAlerts.php';
SET @iHandlerId := (SELECT `id` FROM `sys_alerts_handlers` WHERE `name` = 'bx_dolcon');
INSERT INTO `sys_alerts` (`unit`, `action`, `handler_id`) VALUES
('account', 'logout', @iHandlerId),
('profile', 'delete', @iHandlerId),
('profile', 'add', @iHandlerId);
So when an event like profile add or delete happen then it would be processed with the handlers from modules/boonex/dolphin_connect/classes/BxDolConAlerts.php too.
So it is the most proper solution for UNA.
Hope I could explain the possible ways and challenges :-)