One of DS2's issues are play skills -- he would rather fiddle with the wheels on the cars, pack and unpack things, sort things, etc. I know I am supposed to redirect him, and I do, often, but do I need to feel guilty when I don't? It obviously calms him when he's tired or upset, and I admit that it gives me time to cook dinner or clean up.
Re: How often do you redirect?
When DS was this age he would only play with things that had lights or spun in circles. My parents wouldn't stop giving him those light up spinner toys. His teachers/therapists said to allow these toys as a reward. I would never get rid of them completely. I do the same thing now- when I can, I sit and play with him. It's usually right when I get home from work and is sometimes only for 30 minutes or so. Then I let him have his Ipad time while I'm cooking. He knows it's Mom-DS play time first, then Ipad time.
Much to DH's chagrin, I never stop trying new toys. I get almost all of them used. You never know what will click. With DS, we tried GeoTrax when he was 2.5 and that worked for a couple years. It was a major breakthrough. Then we went through a dry spell for awhile and all he'd play with is water toys and sprinklers, which is tough in Minnesota winters. But we recently had another breakthrough when one of his teachers got some K'Nex for her room. He loves them. He builds elaborate spinners, and they've had luck suggesting different things for him to build so he can build his imagination. The other day he built an elaborate "bad guy fighter" with optional mountain climbing ax, lol. So I'm off to Ebay to find some K'Nex lots..
When Chris was this age, his special instructor did say that at the end of the day we should let him relax a bit and if that meant stimming, then so be it, but not let it go for too long and any redirection should be gentle and to something he genuinely enjoyed. He stressed the importance of making sure he had some down time when he wasn't being drilled.
Nowadays, he still stims. Sometimes if I see he's overstimulated, I'll let him go for a few minutes and he seems to be able to stop the behavior after just a few minutes. If I do see it go beyond that I'll usually redirect him to something else.