My mil comes over every Friday afternoon for a few hours. She is usually gone by 6ish. We came to that arrangement because her ideal was to come over every Sunday afternoon (for hours), which I found very restrictive. I felt I didn't have enough time to just be with my dh and dc, by ourselves. I also felt I was having to arrange my life according to someone else's schedule and preferences, which I felt resentful about.
We settled on Friday, because of her job - she works away in the week, so that was the only day she could do, which wasn't a weekend. It's fine, although I would like it more if she came on her own, but she is one of those women who gets a new partner and won't do anything without them - not even visit her own son and dgc for a few hours.
My own parents live about 10 minutes away so I see them more frequently - they will pop in for a cuppa or the older kids will wander down to theirs for chocolate to say hello. I don't tend to see much of them at weekends, unless I go shopping with them or stop by on the way home from the park.
My dc have a very close relationship with all their grandparents and I am grateful for it, because I do value that, even though it means I have to commit to some times that don't always suit me.
I do think though, that in your case, Fridays are not ideal for you and you would be better to go for a different weekday.
I think your husband, despite his irritation, needs to understand that your ds is her flesh and blood too and given that she is a loving and kind grandma, it is in your child's interests to spend this time with her. So he should swallow his irritation for his son's sake, if not his mil's.
Of course, that only holds true if she is supportive of your parenting and doesn't undermine you etc. If you are worried about school, you can always ask her just to report any issues to you and you will sort them with the school yourself. I don't see anything wrong in her being concerned when your child was told off - that's natural granny behaviour imo.