Товарищи, на вызовы
cs_InvokeEvent.unlock();
...
cs_InvokeEvent.lock();
не обращайте внимания. Они нужны для отмены события при выгрузки компоненты.
Т. е. они нужны для того, чтобы завершающий поток мог отменить вызов лишь в тот момент, когда событийный поток совершает вызов COM-метод. эти вызовы не имеют прямого отношения к этой теме.
Может эта проблема связана с апартментами?