I thought this info is somewhere on top of tutorials or a Dynamic documentation, it isn't so let me add this answer:
tutorial / AdvancedDynamicFunctionality / Automatic Updates of Dynamic Objects
Dynamic outputs are only updated when they are visible on screen.
Outputs that are scrolled off-screen, above or below the current document position, will be left unexamined until the next time they are scrolled on-screen, at which point they are updated before being displayed.
(Thus the fact that they stopped updating is not normally apparent, unless they have side effects, which is discouraged in general.)
The last sentence means that it is discouraged to do something like
Dynamic[calculations and result]
You should design your GUI such way that you only have
Dynamic[result] while calculations are triggered by something stable, like events in
Buttons or other controllers. Or even