要するに、最初に提示されたコードであると、
キーを押しっぱなしにしていて離した時点で、

GetAsyncKeyState(37) がたとえば 200 とかいう値を返してくる。
そのためこのコードだと、キーを離した後も、あと200回、If文の中の命令をこなすこととなっている