Чтобы разобраться в проблеме надо понимать как работает композит.
Вот так размечается динамический контент и его заглушка внутри шаблона компонента:
$frame = new \Bitrix\Main\Page\FrameBuffered("my_dynamic");
$frame->begin();
// Содержание динамической области
$frame->beginStub();
// Заглушка
$frame->end();
При первоначальной загрузке страницы, браузер получает HTML в котором отсутствует динамический контент. На его месте находятся заглушки.
После загрузки страницы у Вас выполняется JS скрипт, который навешивает обработчик на вашу кнопку. Но кнопка у вас из заглушки.
После уже сам Битрикс загружает на место заглушки динамический контент. В DOM модели это будет уже другая кнопка и на ней не будет вашего обработчика.
Поэтому Вам надо либо инициализировать обработчик из динамической области, либо изначально вешать событие не на саму кнопку. Например в jQuery это можно сделать так
$(document).on('click', '.header__link.header__link--auth', callback);