This is to be expected. When calling an alias directly from an event the context of that event (identifiers like $chan, $nick, etc.) is passed to it. That context is not retained with timers so when the _test alias is called upon the timer being triggered $chan is invalid since timers are not inherently associated with a specific channel. $network still returns a value because online timers are associated with the connection from which the timer command was first called.

If you want to use the channel from within the _test alias you should pass it as a parameter.