Идея с отдельным потоком хорошая. Надо попробовать.

Как я понимаю, Services.Action дают довыполниться хотя-бы тем процедурам, которые идут "слитно", то есть — до обработки следующих событий. Как-никак все же большая "консистентность"...