non ho guardato bene il codice, ma il ragionamento e corretto.


la cosa sbagliata e setTimeout, deve essere setInterval