Странно, почему-то пропустил оповещение об ответах...
Я, в итоге, пошел по пути отслеживания изменений словаря, как предложил Привалов Дмитрий. Там были некоторые сложности из-за того, что словарь у объекта может быть, может отсутствовать, может быть удален и заново создан и т.п. Но это, в принципе, оказалось решаемо. Сейчас проверю Ваш метод.
P.S. Хотя нет, не смогу проверить. У меня в метод записи словаря объект передается открытым на запись, а метод DowngradeToNotify, как я понимаю, будет изменять это состояние. Я опасаюсь, что это может порушить работу в каких-то моих приложениях.