Timer switched to non-Daemon to prevent early termination.
Timer now cancels if t_remain == 0.