No he tenido la dicha de pasar por la experiencia que comentas Al pero me llama la atención tu duda.
Creo, en mi más humilde entender, que quizá sea posible (y hasta mejor) directamente definir un procedimiento almacenado. Pregunta: ¿Es necesario que tales acciones se lleven a cabo ante cada before/after delete/insert/update?
Quizá se mejore las cosas si en lugar de estar disparando una y otra vez por cada registro, se manda a ejecutar un procedimiento almacenado que tome estas acciones y las "agrupe" en una misma rutina. Como si fuera un proceso que se dispara por lotes y a ciertos intervalos regulares.
Como en muchas cosas, depende, depende... A veces es posible optar por un procedimiento almacenado, en otras la más viable pasa por medio de disparadores.
No es pecado que un triggers de esos que tienes invoque y delege el trabajo en un procedimiento almacenado
Saludos,