1.2.18 > 1.2.4, so you should have the fix, unless it regressed after 1.2.4 along the way. If you want to try, you can install specific version manually. I see you’re using 2019, in that Unity version you do the following:
hit the + button in the top-left corner of package manager
choose the Add package from Git url... option (or something similarly named)
write or copy this in the text field: com.unity.timeline@1.2.4
Regarding the original issue, I can confirm it’s working fine in another scene of my game (the same animation event is only firing once), so it must be a setup thing on my part.
Resolved it. It was something to do with the loop settings on the animation clip itself, AND how the timeline was set to loop the clip. Too many things looping.