Exec関数に実行秒数(フレームでも可)を指定する方法をご存じないでしょうか?
[ボタンAを押しっぱなしにしても5秒(フレーム)たったら命令を取り消す]
のようなものです。