Yeah, some moms can be harsh. There are some out there that think if you can't give your child attention 24/7 then you are a bad mom. What they don't understand is some moms have other commitments like work and school, and the small minded moms' brains are too small to realize you are making sacrifices now in order to have quality time with your kids later on. Pay no attention to them.
When my son was that age, Playdoh kept him busy for at least an hour. I bought those little containers and let him pick 2 colors at a time. I gave him a bag of toothpicks and different size popsicle sticks and let him create whatever he wanted. When he was done, I would just throw out the playdoh if the colors were too mixed. I did try those Playdoh factories (breakfast factory, Transformer factory, ice cream etc etc) but they never held his interest as long as just free play.
Building toys were my savior. We invested in huge buckets of Legos, Tinkertoys and Lincoln Logs. He was able to pick a different bucket each day to play with. I would also divide his toys into 5 different buckets and each day let him play with a different set of toys M-F. That way, he will learn to play with the toys he has for that day, and be excited to play with different toys the next.
Try those interactive toys too, like a Leappad. My son had a little computer that had different learning games on it (it looked like a regular computer and even had a built in mouse) that you open and close. Again, let him play on it for a set amount of time so he won't get bored with it if he can play on it whenever he wants.
There is nothing wrong with reading either. Even at 4, there are plenty of books with pictures he can look at. They have graphic comic books for that age...like Boxcar Children. Check out books at the library like books on robots, animals, science experiments, cars, how things work - any picture books on subjects he might be interested in. Have him look at those for 20-30 mins. Books on tape might help entertain him too.
Keep a schedule for him on those days he has to entertain himself. Keep each activity for 30 mins at a time and make sure to leave enough room for set up/clean up. That way will only be interrupted (if all goes well) every 30 mins instead of every 5.