Fix flaky countdown reset tests by performing an explicit second Reset before validating the second timeout window, and using a boundary-safe time check.
Observed failure:
--- FAIL: TestCountdownShouldReset (14.00s)
countdown_test.go:53: Correctly reset the countdown once
countdown_test.go:72: Countdown did not reset correctly second time
* feat: write duration calculation in countdown as
interface. add more inputs as function argument
* feat: ExpTimeoutDuration
* fix: three dots usage
* feat: refine exp duration
* feat: add exp timeout config and use it in countdown
* feat: remove const countdown
* feat: remove use of interface in countdown, use error
* fix: countdown reset timer problem
* fix: add default ExpTimeoutConfig for config