An incident that scared your DD enough that you left immediately, followed a month later by your MIL actually smacking your DS in the face and shouting "shut up" - and this time no apology, just "it was just a tap" - you are not being unreasonable in the slightest, and honestly, you've already been more patient with this than most would be.
The bit that stands out most is the shift between the two incidents. First time, she rang the next day, apologised properly to your DD, seemed to understand it was wrong. Second time, she smacked your five year old in the face and doesn't think she's done anything wrong. That's not a one-off slip from someone mortified at their own behaviour, that's someone who's shown you exactly what she thinks is acceptable when she's alone with your children and doesn't believe she'll be challenged on it.
A few things worth being firm about:
"It was just a tap" is exactly the kind of minimising that should worry you more, not less
It tells you she doesn't see smacking a child in the face as a real problem, which means there's no reason to believe it won't happen again given the chance. People who feel remorse change their behaviour; people who explain it away don't.
She has shown you who she is, more than once now - this isn't a one-off to be explained away
Shouting and frightening DD, then shouting in DS's face and smacking him, with zero remorse the second time round. The pattern is escalating, not settling down. Nobody should have to wait around to find out what "next time" looks like - a harder smack, a punch, who knows - to justify acting now. Two incidents is more than enough evidence of what she does when she thinks no one's watching or that there won't be consequences.
The fact your children told you straight away, unprompted, matters. Kids don't usually lead with something like that unless it genuinely upset or frightened them. That's your children telling you, in their own way, that something happened that felt wrong to them.
You and DH have never smacked your children, and family know that. That's precisely why your children have no context for being hit and were rattled enough to report it immediately.
No contact at all is the only sensible response here, and it needs shutting down right now, not eased into gradually. She's had two chances - a shouting incident with an apology, then an actual smack in the face with no remorse. There's no version of "let's see how it goes" that makes sense after this. Choosing "never again, full stop" isn't an overreaction, it's you deciding your children's safety isn't up for negotiation with anyone, regardless of who they are or how DH feels about it.
On DH's line that "she's not a bad person" - honestly, that doesn't wash here. She struck a vulnerable five-year-old, in her charge, in the face. If a childminder, teacher, or stranger had done that to your DS, the police would be involved without a second thought. What she did was bad, full stop, and she's shown you that once wasn't a fluke.
She cannot be trusted, and you don't need to wait for a worse "next time" to know that. These needs shutting down now - no contact, no negotiation, no second-guessing yourself. That's exactly what a parent should do.