ну, если сравнивать 2 ситуации - текущая - когда работает "быстро", но не стабильно - в топку её)
и вторую - когда "дольше", но стабильно - я бы выбрал 2.
можно примерно понимать за какое время курсор меняется (когда появляется кнопка), допустим, за 1 секунду
делай 2 клика и цикл ожидания, что-то вроде:
$iStop_idle = 1
while $iStop_idle < 10
;тут юзаем код, который проверяет какой сейчас тип курсора - если сменился - понимаем что можем нажать на кнопку и меняем алгоритм действий
sleep(100) ; ожидаем 1/10 секунды
$iStop_idle += 1
wend