counterを設定してもマシンが止まらない

解決手段

print関数などを使用して、if文の中に入っているかどうか確認しましょう。
変数の値を編集する過程が実行されていない可能性があります。

理由

プログラムは書いたとおりに動きます。思った通りに動かないときは、自分が書いたプログラムを疑ってみましょう。
各手順の後にprintを行って、本当に思った通りのプログラムになっているか確認するのも有効です。