Children who are at school are on the school grounds.
Children who are in school are in their classrooms.
(At least, those are the initial images that come to mind when I hear those two prepositions, and try to differentiate between them – although that differentiation is more forced than the norm).
In this case, either one will work just fine, because children who are at school (on the school grounds) are also, by default, in school (in their classrooms). On a holiday, they are neither in school nor at school, so you can use either preposition without any loss of meaning.
The one exception may be if the football team had a Saturday practice. In that case, I might say that David was at the school, but not in school – but that is a rare circumstance. Normally, either word works fine for the examples you provided.
As far as other diffentiations go:
I may be at work, but I'm never in work – unless I'm lost in my work.
I may be at home, but I'm never in home – only in my house.
I might speak in jest, but I would never speak at jest.
I might be at the restaurant, but I could be in the restaurant. At the restaurant would include being in the parking lot, but I probably wouldn't be at the parking lot – unless we were meeting at the parking lot.
Maybe it just takes a little practice. I'm reminded of this quip my father once told me:
The worms were eating in earnest. Poor Ernest.