Добрый день.
Ну, так, навскидку взведенный при коротком нажатии
isLongPress = true;
не сбросится к моменту второго короткого нажатия.
Когда-то был актуальным вот такой скрипт: Нестандартные функции выключателей - #6 от пользователя BrainRoot