W jakim celu chcesz to zapętlać? jak podpinasz zdarzenia, to się powinny odpalić za każdym razem. Jeśli masz wątpliwości to możesz zrobić coś takiego:
$(window).focus(function() {
console.log("dupa blada");
i otworzyć konsolę, czy dana funkcja się uruchomiła.
A tworząc "pętlę" (czyli tak jak teraz masz - z użyciem setInterval) podpinasz cały czas nowe handlery zdarzeń i na dodatek masz tam zmieniający się stan, który zapewne się konfliktuje z poprzednimi podpiętymi już handlerami, więc nic dziwnego, że ci coś nie działa. Więc ten setInterval należałoby wywalić.
co do logiki zmieniania tytułu, to czy nie możesz to jakoś prościej zrobić?
Np. tak:
var message = "Wróć do nas :)!";
var original = document.title;
$(window).focus(function() {
document.title = original;
}).blur(function() {
document.title = message;
});
(albo coś podobnego - tylko nie sprawdzałem, czy mój sposób faktycznie działa. No ale to chyba najprościej by było).
BTW tak wygląda kawałek mojego paska przeglądarki - powodzenia ze zmienianiem tekstu. No chyba, że inni ludzie nie są tacy turboprzeglądacze... Ale coś w tym jest, że wiele stron zamiast zmieniać tekst, to zmienia ikonkę strony (jak to widać w pierwszym tabie - gdzie jest Discord)