Erm, actualy it should work, because that's exactly what they do, they store the position in the bgm.
It's how it's set up in Interpreter as well.
Are you sure you weren't just putting them in the wrong place?
B/c is you put it in the wrong place, it could memorize the music, play it from the saved spot, then play it automaticly from the begining if you put it in the wrong place.
EDIT: that and you just said $game_system.bgm_play, I'm talking about restore :wink: