それはプログラムがBGMPLAYを行ってからすぐ終了してしまうためです。 とりあえずWAIT 300(数値は適当)でも入れとけばBGMが終わる前にプログラムが終わるのを止められるかと