[fix] set and clear timer to ensure determinism

Prevent any possible timer leakage by clearing the timer when the
timeout is exected