Detecting certain moments in gameplay is an interesting topic. I usually use something like this:
Code:
register_event("ResetHUD","newround_event","b")
register_event("SendAudio","endround_event","a","2&%!MRAD_terwin","2&%!MRAD_ctwin","2&%!MRAD_rounddraw")
register_event("TextMsg","endround_event","a","2&#Game_C","2&#Game_w")
register_event("TextMsg","endround_event","a","2&#Game_will_restart_in")
Your solution might actually be better, I haven't tried it, but this way works ok. If I want to do something at the start of a new round only once, I would need to put a boolean "runThisRound" check first thing in newround_event. If its false, it will continue with newround_event and set the boolean to true, so that the next time newround_Event gets called (it will get called once for each player, even late joiners) it will just get stuck at the boolean check. The boolean is reset to false in endround_event.
I'm sure there are better ways to do this, but this has worked good so far.