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 }