После смены пароля через CUser::Update вход по CUser::Login на 20 минут перестает работать. Что делать?
Надеюсь меня тут поругают и ответят как надо было побороть эту проблему. 
Конечно поругают: вы ведь делаете кривой велосипед, вместо того чтобы взять и использовать штатную CUser::ChangePassword (ее описание в API).
Если уж хотите изобретать собственные велосипеды, то хотя бы изучите как работает стандарт, а потом уже изобретайте свое.
Как уже написали выше, передавайте CONFIRM_PASSWORD
и добавьте третий параметр CUser::Update($id, $fields, false) – это отключит добавление записи в AuthActionДокументация