Не знаю почему вас редиректит, видимо ошибка где-то перехватывается. ngOnInit в компоненте должен бросать эксепшн у вас.
На первый взгляд вижу:
1. асинк валидаторы передаются в третьем параметре FormControl, а у вас во втором, вместе с простыми валидаторами.
Далее, делать валидатор через сервис, реализующий AsyncValidator смысла не вижу, в примерах его используют для создания директив. В вашем примере в директиву провайдится валидатор с помощью токена NG_ASYNC_VALIDATORS.
Можно наверно заюзать AsyncValidator и для компонента (типа реализующего ControlValueAccessor), но нужно будет тоже провайдить указывая токен (но это не точно). Обычно в этом просто нет нужды.
Для простой асинх валидации можно использовать функцию-фабрику валидатора, который берет зависимости от компонента.
Вот так
https://ng-run.com/edit/DDaBjbxR39I7DIImTg0n
Да, и еще. Ваш валидатор будет делать запросы на каждый вводимый в форму символ. Чтобы этого избежать, нужно указать updateOn.