Because you used the "Requested Frame" output of the Render to Window node to fire events. Using the Changed node on the render time has the same effect - fires an event on requesting a new frame.
Cool! I just made it conform to the Image Generator protocol so it can be played in VJ apps like CoGe - you can find it attached.