Можно добавить этот промис в секцию стэйта resolve. Тогда контроллер не будет выполнен до тех пор, пока все зависимости в resolve не будут разрешены. Значение, в которое разрешился промис, будет также доступно для внедрения в дочерних стэйтах и их контроллерах.
Встроенных средств нет.
Правильнее написать директиву, которая будет слушать изменения в модели. При сохранении вы к примеру генерите событие, при котором эта директива сохраняет текущее значение модели. При несовпадении модели и ее последнего сохраненного значения директива выставляет на элементе определенный класс.
Вы уверены, что дело именно в клиентской части?
Может у вас на сервере работает всего один процесс, который не может обработать более одного запроса одновременно?
Если во время этой долгого запроса руками подергать запрос прогресса - он будет отрабатывать сразу?
Вы неправы, dom обновляется один раз.
Если ваша таблица изменяется настолько часто, то предполагаю, что ваш вопрос происходит из-за того, что вы столкнулись с некими тормозами?
Если речь идет про запросы к api, то их можно вынести в resolve стэйта, который сделать родительским для всех стэйтов - тогда resolve не будет выполняться каждый раз при переходах между дочерними стэйтами.
Но как уже сказали выше, вы, вероятно, что-то хотите сделать неправильно.
Если вы используете ui-router, то можно выполнять код по событию $stateChangeSuccess