Я исправил это, включив errorMessage сразу после его отключения, когда вход действителен.
else { // Condition finally met when error is valid
signinEmailLayout.setErrorEnabled(false);
signinEmailLayout.setErrorEnabled(true);
}
Как и предлагается в комментариях @MRamzan, похоже, что это поведение по умолчанию. Так или иначе, в моем классе активности я установил errorEnabled в false, что заставило макет удалить пространство, предназначенное для сообщения об ошибке, когда ввод был действительным. Как только ввод снова стал недействительным, появилось сообщение об ошибке, так как я снова включил его, и, следовательно, там был нестабильный UX.