Walk away after 15 ( or 10) minutes because you should have something better to do with your time than wait around hours for someone, right? There needs to be a negative consequence of the bad behaviour and it should be communicated through your actions rather than your words. Words will always fall on deaf ears.
I remember a friend who had a problem with a very tardy friend from one of the warmer EU countries and started to leave habitually after 10 minutes of tardiness. After a couple of times he got the idea and even started arriving early to the meetings.
You don't lose anything by doing this. It's a good strategy since it reveals the nature of your relationship with that person. If you don't like the revelation, fix it in a socially intelligent manner or exit the relationship. ...