savl, еще раз спасибо за дельный совет в нужное время.
Сделал так:
UI не получаю. На форме, JS проверяет значение управляющего поля "NeedRefresh" каждые 100мс. После внесения изменений в дос в бекграунде, записываю в управляющее поле код который определяет, что надо сделать в UI. JS видит "NeedRefresh" !=0 и нажимает нужную кнопку (раньше мог только сделать какие-то действия в UI получив дос через ws.EditDocument и то с большими ограничениями - например Refresh - нельзя, падает клиент).
Т.о. док сам себя обновляет когда надо, такой типа AJAX. Не тормозит, редактировать не мешает, утечка памяти не замечена. Можно навесить таймеров на кучу доков без проблем - таймер работает только в доке на котором фокус.
Тема закрыта.