Изменения формы - это один поток valueChanges, этого должно быть достаточно. А что значит пушите вверх? И принимаете там решение? Зачем нужны промежуточные состояния? add-edit - процессы вполне конечные, которые хорошо обвязать собственно кнопкой "Сохранить", чтобы не размазывать эту форму по приложению
Расскажите, что хорошего получается из того, что кто-то сверху знает о незаконченном состоянии формы?
форму можно в таком случае использовать где угодно, т. к она отображает только данные и в ней нет кнопок редактирования. edit / book add / book