I agree with your point about people who don't want the stores open should do no shopping at all on that day - including don't gas the car, don't run to the store for a last minute item, don't pick up a bottle of wine on the way over to someone's house, etc.
My personal preference is usually to avoid shopping that day - to have a meal at our house or a friend's house, watch some TV, relax. (Although as I admitted, I have eaten out at times, or wanted to go to a movie or bowling or something.)
But everyone is different; and if there are people who want to shop that day, and there are store owners who want to open the stores - who am I to say they shouldn't be able to connect? Not everyone has a family in town that they are celebrating with. Not everyone has the traditions that I have.
So while I don't like stores opening earlier, I realize this is a personal thing, and getting indignant is, as you say, a bit hypocritical on my part and also means I'm forcing my values on others.
But - I do think the idea that stores pay more for people to come in on a national holiday is a good idea; and workers should be able to say "no thanks, I'm not working that day" without penalty. I bet there are a lot of workers that would HAPPILY move their family celebration to another day for sufficient pay!
(and, as you said, of course this is only for non-essential services; obviously, hospitals, ERs, cops, fire fighters, etc will need to have workers in.)
Do we need a law for triple pay on holidays? that would be nice. We have laws about overtime pay; each worker doesn't have to negotiate that separately. Having a law would help those workers who don't feel comfortable asking for more pay from their managers (not everyone is as courageous as US Conservative on this).