Easy you just need to escape asctime by using !
.timerpos 0 1 /did -ra $dname ID $!asctime($calc($insong.pos / 1000),n:ss)
this will update the pos every second of course when the song stops you need to halt this with mp3 end
then in the mp3 end section
on *:MP3END:{
.timerpos off
}
always add the did -ra diglogname id after .splay like this
NOTE: this is from your previous script.
if ($exists(%mp3file)) { .splay -p %mp3file | .timerpos 0 1 /did -ra dialogname id $!asctime($calc($insong.pos /1000),n:ss) } | else { next.end2 }