Why don't you have the timer call an alias which has your commands in it.

$+(.timer,$4) 1 15 MyAlias

Code:
alias MyAlias {
  notice $4 I did not receive a version reply from you
  write $+(noreplylog,$asctime(yyyy-mm-dd),.txt) NO REPLY FROM $4
}


on *:SNOTICE:*client connecting*:{ 
  timer 1 5 ctcp $4 version  
  $+(.timer,$4) 1 15 MyAlias
}

on 1:CTCPREPLY:VERSION*:{ 
  $+(.timer,$nick) off  
  write $+(versionlog.,$asctime(yyyy-mm-dd),.txt) $2-  
  if ($read(versions.txt, s, $2)) wallops Version Alert for $nick using $2- $read(versions.txt, s, $2)  
  else halt
}


**Untested**

-Andy