HomeBee, my use case was slightly different, but my dumbed down solution might help you, if you’re still looking.
I’m running both S1 and S2 Sonos systems in the house so considered adjusting this to serve the file to both an S1 group and an S2 group, but the S1 and S2 grouping speeds seem a bit different and variable depending on what combination of speakers are grouped at the time, so the sync wasn’t ever going to be perfect with the mix of the two systems.
Since that’s the case, I decided not to worry about the sound being sync’ed at all.
My script dumbed down the original and removes the joining of different rooms and just defines the speakers (a mix of S1 and S2) that I want the sound to play on as a comma separated list in the entity_id: each time it is referenced. e.g.
entity_id: media_player.kitchen_sonos_move, media_player.ms_study, media_player.loft
It works well and the sync is only a bit out. The main aim was to hear the door bell in key rooms throughout the house, so job done.
I haven’t had the inclination to test if this might be quicker than joining all the speakers into their S1 and S2 groups and then playing the sound through the two groups, but I wonder if this way each speaker starts playing the chime when it’s ready, rather than waiting for the slowest speaker to group up before playing. Dunno.