Вы здесь в вопросе не указали, но в демке на jsfiddle видно, что этот ваш let timerId
находится внутри mousemove
При движении мыши mousemove срабатывает очень много раз, и при каждом срабатывании заново создается переменная timerId и пересоздаются обработчики клика.
Короче - архитектура ни к черту :)
Создайте ОДНУ переменную let timerId, повесьте ОДИН обработчик клика, и уже после клика определяйте левый он или правый.
И на будущее - вместо onload и onclick лучше использовать addEventLitener('click', ...)
Да, писанины чуть больше, но при попытке написать еще один onload он у вас перетрет предыдущий, а addEventListener можно навесить много раз.