Наверное, потому что setTimeout у вас уже запущен - не важно, нажали вы на кнопку или нет.
Для его отмены по нажатию на кнопки необходимо его отменять с помощью clearTimeout.
Например:

Код AS1/AS2:
var to1:Number = setTimeout(....);
btn.onRelease = function()
{
clearTimeout(to1);
gotoAndStop(...);
}
Но боюсь, что вам нужно очищать все таймауты, одним не отделаетесь, поэтому, например, сохраняйте ссылки на них в специальном массиве и очищайте все.
PS. Не пишите код на кнопках. Мой код выше будет работать в общей области видимости, если выполнить clearTimout() из обработчика, записанного на кнопке, то ссылка на таймаут не будет доступна.
Либо в каждом из кадров удаляйте все возможные таймауты.