The threat of being thought of as "cheap" is very strong.
Personally I wouldn't cover someone more than once if they hadn't paid me back. But I understand how people get sucked into it. If you are worried about being cheap though, you could just say that you don't have the money. It's no different from affluent mom saying that she forgot her purse.
It is strong, isn't it? But the threat of being seen as a con man (the moocher) or as a patsy (the payer) isn't as strong!
I would suggest that the mom do a "life hack." Set it up so that she *cannot* pay for anybody else's lunch.
(Sort of like Odysseus tying himself to the mast and stuffing wax in the ears of his men, in order to get past the Sirens, but allowing himself to hear them.)
Call ahead and figure out exactly what I'm going to buy for snack, with tax. And put exactly that amount of money in my pocket; leave *everything* else at home. Then go to lunch.
Then I can't pay.
Or, I would just skip the next 2 gatherings. If anybody else asked, I'd be totally honest: "Moocher Mom keeps asking me to pay for her lunch, and I'm having trouble being tough about it, so I thought I'd just not go for a few times, and then maybe it'll be easier to break the cycle."
But really, people need to drag this stuff out into the open. Which is worse--being cheap? Or mooching off other people repeatedly?
But I do like the idea of asking the woman to bring the money. If you're too chicken to do it face-to-face, do it by text.
Or better yet, reply-all to the group email and say, "Looking forward to seeing you all. Oh, Moocher, don't forget your wallet. Will you be able to pay me back tomorrow for the lunches I've bought you?" Just make it aside to the general thing, but let the group know what's going on.
She deserves it.