For your second point:
- using %1 as counter in the while loop seems bad idea if you also put the entire command in %1 smile
- I have been in a situation where I might need it, but I think it would be nearly impossible for Khaled to program this into the parser...

To help you explain it:

We all know the standard "execute a command from a %var" like
var %cmd = echo -s hey this works!
%cmd


What Mc_Fly suggests is a multi line equivalent of this: you put different lines in different %vars and then then order those %vars in the correct order again to execute them
This works now already
var %cmd1 = echo -s hey this works!
var %cmd2 = echo -s this works too
%cmd1
%cmd2


But this won't, because it uses multi line constructs
var %cmd1 = if ($true) $chr(123)
var %cmd2 = echo -s this doesn't work
var %cmd3 = $chr(125)
%cmd1
%cmd2
%cmd3



For your third item, there are different things you want here:
- Multiple commands executed by a timer: make a (local) alias with those commands and have the timer call the alias name.
- Having %vars evaluated when the timer executes: try $eval($eval(%1,2),0) or something?
- Having %vars be evaluated when the timer is created: that's already done...