ну так синхронный значит должен выполняться последовательно, но почему этого не происходит ?
Например, ты описал создание промиса, который выполнится неизвестно когда, в функции-хендлере. Задача клика - выполнить функцию-хендлер, он это делает, больше он не должен ничего.