I've made it work! Thanks very much to everyone who contributed, I certainly would not have been able to do it so neatly without you and would surely have had to resort to writing piles of variables to all sorts of odd places and it would have been an utter pig's ear.

starbucks I went back to trying to call the alias not directly as I ahd before, but now at the end of the timer explicitly with a $!!me at the end rather than the variable I had used before. Long story short the following will call the alias from a timer and pass an identifer properly to it (like anyone else will ever care)
Code:
      if ( $left(%hlt_name,1) == $chr(36) ) {
        .timer $+ %hlt_name -oic 0 $readini( %hlt_ini, %hlt_name, Delay) .hlt_remig $chr(36) $+ $chr(33) $+ $right(%hlt_name,-1)
      }
      else .timer $+ %hlt_name -oic 0 $readini( %hlt_ini, %hlt_name, Delay) .hlt_remig %hlt_name