Yeah something like that. I think setDelay() is probably a 5.x feature. I made the change a little while back to 5.x. Still have 4.2.5 installed as well though.
P.S: Also having my own sync problems. I've been trying to get 2 animations to sync without much luck. I have a talk animation that performs hand gesture segments & I've been trying to make it so that if talk animation ends partway through one of those that it will carry on inside of the idle animation as it has the same hand animation in that too, but it's not playing ball for me.
Only thing I can think of for you with 4.2.5 version is using the openAL sound engine with Lua script, but the music cuts out when changing scenes unlike the built in background music option. Maybe you could use a mainLoop handler & use getTime() function to check when time = more than or equal to 1000 then increment a value. The only problem is that over time it will likely lose sync as it's not 100% accurate. It will likely end up being a few ms off each time you reset the getTime() function; then again a few ms here & there will take a while to offset out of sync by a full second or more.
Maybe worth a try? Here's the getTime()
function page with an example on creating a time delay/loop.