Why not simply write yourself an alias that checks to see if you're not away and your idle is over 15 minutes? Then just have one or more of your more active events call that alias as their last check. No timers, your idle still gets checked and you get set away if you're over 900 seconds (15 minutes) idle.

on *:QUIT: [/b]Check.Auto-Idle.Away[/b]
on *:JOIN:#: [/b]Check.Auto-Idle.Away[/b]
on *:TEXT:*:*: [/b]Check.Auto-Idle.Away[/b]
alias Check.Auto-Idle.Away if (!$away && $idle >= 900) .raw AWAY Auto-Idle Away after 15 minutes.

DALnet: #HelpDesk and #m[color:#FF0000]IR[color:#EEEE00]C