I tend to think that when someone behaves as egregiously as the OP's former friend did, that person is in desperate need of being berated. I do not think it is rude. I think it is the natural consequence of treating people like dirt. Justice is not rude.
It's not justice. It's letting your temper get out of hand.
Just because someone treats you like dirt doesn't mean you get to do the same to them.
The OP had plenty of chances to use proper behavior to mitigate the friend's affect on her life.
If I wanted to enjoy an event where I had to show up at a certain time, the very last person I would ask to go with me (and pay a ticket for) is someone who has a long history tardiness. And in this case, extreme and ridiculous tardiness.
Going off on her is not only rude to her, its rude to the other people who had to witness the drama. It's uncalled for.
By contrast, the story on the front page today about the children crawling under stalls and invading the privacy of strangers would call for that kind of outrage in the moment.
That's a truly shocking thing where one could be forgiven for their behavior being over the top.
This is not. It's just not. The friend had such a long history that you could see it coming in the story a mile away.
It would not have been rude for the OP to not wait for her friend, not try to get the ticket to her, etc, etc. Missing the event is a natural consequence. Your friend not waiting for you is a natural consequence.
Being yelled at in public is just rude. And don't think that the friend is not using it to her advantage. Still, instead of being the friend who is disrespectful to others by being late all the time, is the "wronged" party here.
Not only is it rude, but it accomplishes nothing. The friendship was not going to salvaged. There is no good point to what the OP did except for venting her spleen.
We cannot give others that much power over our behavior. It's an important lesson. Enforce your boundaries so that you don't get pushed to the brink.