це ж логічно, бо відбувається unmount компонента і функція clearTimeout очищає таймер.
Думаю можна тримати стан таймера в глобальному стані(redux, Mobx, MST), і ефект викликати з пустим масивом,а clearTimeout робити перед другим викликом ефекту(тобто, якщо юзер знову заходить на цю вкладку).
Це просто мої роздуми стосовно цього, але не претендує на правильність)
Не впевнений, що анмаунт відбувається, скоріше зупиняється виконання джаваскрипта в тій вкладці, ставиться на паузу