email_pattern = re.compile(r'[\w.-]+@[\w-]+\.[a-zA-Z]{2,}')
if email_pattern.match(msg.text):
await msg.answer("Электронный адрес введен верно")
else:
await msg.answer("Электронный адрес введен не верно")
await state.finish()
1. Оформи код. Нечитаемо.
2. Что значит "проверка не прекращалась"? Ты описываешь в начале функции "работай только в состоянии email_ch", и говоришь в конце функции "выйди из этого состояния". Полагаю, функция делает в точности то, что ты ей говоришь.
Фрагменты кода надо размещать в виде текста и оборачивать тэгом code для корректного отображения. Удобно делать кнопкой </> Это обязательно, см.п.3.8 Регламента.
Сюда же относится traceback, ввод и вывод в консоли и другая структурированная текстовая инфа.