You're definitely at a point when you can legitimately get mad, and/or take action about her behavior. Even with a flaky schedule, there's no excuse for bailing out on an even that requires non-refundable money and not covering your share.
You can do it the direct way (talking to her about it) or the indirect way (backing off quietly). But the main thing you can do is change your own behavior to take into account your knowledge of hers.
The first thing I'd do is stop making any plans that will significantly inconvenience you in terms of money if she bails out. So if she wants to go on the ski-trip, you can either say "I'm sorry, your schedule is too unreliable, and last time I was stuck with the cost of your room" or "Great! I'll need $250 cash in advance, non-refundable, for your room. Substitutes to take over your spot need to be approved by the other attendees." And definitely stop inviting her to stuff like this.
For the second - the direct way would be to wait until she issues an invitation for something (like the run), or asks to come along on something like the ski trip. Then say point blank "It sounds like fun. But the last couple of times you wanted to do X you cancelled at the last minute leaving me to do it alone/left me to pay for your part of the costs. I'm pretty busy too, and I don't have the time or desire to schedule events that are probably going to be cancelled at the last minute."
For that approach, it will be more effective if done at the time (rather than a "we need to talk" grievances airing session.) And the result will depend on her reaction - if she gets mad and blames you, or claims it's all the job, and not her fault, then you know where you stand, and can adjust things. But she does have the chance to try to improve her behaviour, or adjust the type of events.
For the indirect method - don't accept invitations to stuff where the cancellation will inconvenience you or cost you money, and don't invite her to the same. Continue to see her in low stakes situations (call her up at the last minute and see if she wants to go for coffee, plan to meet for something you'd be happy to do by yourself, invite her to group events that don't cost money, where her absence won't cause a problem.)