When my kids get into food without asking, I punish them by giving their innocent siblings a treat. Normally muffins or something else tlhat we don't have very often.
This morning my 4 year old ate half a pizza to himself, so I gave my 5 year old and 2 year old a muffin and cereal for breakfast.
My kids aren't starved by any means, if I feel they didn't eat anything they got into they get something to eat. My 4 year old waits to hear my DH leave for work, and he gets up and pillages until I get up, normally only 15-30 mins later.
This is what works for me, and what some would call me a bad mother for. The way I see it, is they have already eaten and should be full from their raid.
*ETA my 4 year old is the only one who overindulges and he doesn't have anxiety issues or anything. He has a sensory problem, he doesn't feel full EVER.
The plan for the pizza was lunch, apparently that plan went out the window. There were 3 pieces missing from a large little ceasars pepperoni pizza, there are only 2 left now.
Also I was not sleeping, I was getting dressed and using the bathroom, and getting my 2 year old up, and ready. I never said I was sleeping for that extra 15-30 mins.
This is what works. As soon as he has raided and his siblings get a treat (muffins, pancakes, etc) he doesn't raid again for at least a week, just really depends on how bad he wanted the treat.
He isn't starving and yes he already has an eating problem, I'm working on it. How I do that is I let him know when he is full. He eats one plate of food and depending on how much was on it, he gets a second plate with a little less on it, and then he is done.
My 4 year old weighs 39 pounds, he isn't overweight by any means. So this is what I have found that works.