Все оказалось просто. Нужно было в $arFilter GetList-a добавить "CHECK_PERMISSIONS" => "N", так как "Агент" отрабатывает от неавторизированного пользователя.
CCrmDeal::GetList при вызове из тела (функции) "Агента" не отдает данные, то есть вызов GetNext() отдает false. При этом вызов этой функции с других мест проекта работает нормально. Модуль "crm" подключен, входные данные правильные.