timer: allow asyncListener to run for each timer

Inline comment explains why.