Have you tried just logging a plain/literal string and it does the same thing?
I think I'd look for not so much a simpler case but a case where it doesn't break, so we can narrow down the causes.
Like does the same thing happen in another animation? A non-looping animation?
Does your code keep calling SetAnimation which keeps causing the time-zero frame to play which causes the event in that frame to fire?
I know there was a bug of events not firing in the first frame before. Maybe that fix also broke it and caused it to fire an abnormal number of times.
But I've been using events in Unity for weeks now. Haven't run into a problem like this. Though I have to admit, I don't have any time-zero events.