Вам надо использовать window.onfocus и window.onblur.
По onfocus заводить таймаут. По onblur чистить.
let timeout = null;
const handleClearTimeout = () => {
clearTimeout(timeout);
};
const handleSetTimeout = () => {
timeout = setTimeout(() => {
showModal();
window.removeEventListener('focus', handleSetTimeout);
window.removeEventListener('blur', handleClearTimeout);
}, 5000);
};
window.addEventListener('focus', handleSetTimeout);
window.addEventListener('blur', handleClearTimeout);
if (document.hasFocus()) {
handleSetTimeout();
}