In the case of the other thread, the
amount of time the OP waited had me scratching my head more than anything else. Sure, wait 20-30 minutes but to wait for one to two hours?? That's too much. Even 30 minutes is too much, but I will do it for people here and there. Not repeatedly, mind you, but sure, why not?
We had a few family members who were chronically late. It really got to where you try to get everyone to the house at 5 but don't plan on actually sitting down to eat until 6 or 6:30. Don't arrive hungry.
Then there was the church-wait time. We'd go to the morning service with them because of some important thing that was happening, but then have to wait a couple ours while they did their other church stuff, so I decided to skip the the church part (depending on what the important thing was) and just arrive when their church obligations were completed because of that long wait time and potential tardiness that inevitably followed. My husband was free to do what he wanted, but for me, killing time for a couple hours got really old, really fast. We often took two cars, which actually worked out well because it gave him the freedom to spend more time with his family and do what he wanted to do, and I could take off with the cranky baby if need be and not wait around for people to show up.
People not being on time seemed to be his family's "normal" while it left me pulling my hair out.
When these meals were hosted in my home (the family meals always included a little bit of pot luck), I didn't put the chronically late in charge of anything important meal-wise so that we could go ahead and start without them. The first time I hosted, I had them in charge of drinks. I was so upset I didn't have anything to offer other than water thanks to their tardiness. We were in a rural area, so running to the store was not really an option. Lesson learned. Put them in charge of dessert and have a couple desserts available just in case or put them in charge of something inexpensive I could cover myself and could be frozen for later consumption if they happen to show up on time.
I think it's more or less a live and learn type of a situation. Surely M and her friends got stuck waiting on the flakes more than once and came up with a solution that seems to work for everyone involved, which is not to rely on the flakes to be on time and certainly don't rely on them for transportation. I don't know how M handled the money situation, but it was probably in her best interest to collect the money for the tickets up front or not buy them at all. You didn't get stuck paying for two flakey tickets, as M reimbursed you, so for you, that part worked out.
You work around people's flaws if you want to maintain the friendship. You learn when to rely on them and when not to. I don't think I would have waited as long as the OP in the other post did. She did it twice and now she's done. I think I'd top off at two tries too, maybe three. I think it's reasonable to give them the benefit of the doubt at first. Then you stop making accommodations. If it's important enough to the flakey friend, they'll work on being on time.
And I agree, it's rude to keep your dinner guests waiting, and it's rude of the flakey friend to be perpetually late and everyone has to wait on them, but, again, I think this just comes down to personal choices and working with people's flaws. You try to find a solution that doesn't kill your own sanity.

You can agree to get together, and stop waiting after an allotted time and proceed without them.