1) Можно попробовать связь через [ngModel] + (ngModelChange)
В этом случае будет работать elvis operator и пайпы (async)
2) Следует из п.1
3) Можно использовать свойство dirty у формы
Рабочий пример
https://stackblitz.com/edit/angular-template-drive...