MAINCNTという、起動時から1フレーム毎に1増えるシステム変数があります。この値をBGMPLAY実行時と、BGMCHK(0)=0になったときに、読み取って、その差が再生時間になります。 この値を、本番でBGMPLAYしたときに読み取ったMAINCNT値に加算すると終わり時間がわかります。実際には、数フレーム引いた値が良いかもしれません。 パートの使い回しということでしたら、マクロ機能「{}」があります。そちらを使った方が良いように思います。