As you correctly said, $2 is evaluated inside the on TEXT event before it ends up filling %blah. I cannot explain yono's problem by looking at the info he provided, since I don't see anything that could cause this. However, the -n in /set is not the problem. Apart from the above said, -n does a different thing: it treats the value as plain text as opposed to a math expression:
/set %a 1 + 1
would fill %a with "2" but
/set -n %a 1 + 1
would fill %a with "1 + 1". But identifiers and variables would be evaluated whether -n was used or not.


/.timerQ 1 0 echo /.timerQ 1 0 $timer(Q).com