I'd really be interested in hearing about the stupid things puppet and chef let you do. I'm a puppet user and quite happy with it at this point. Chose it over Chef because I don't want to write Ruby anymore and like the language. Glancing at Salt Stack, I'm certainly interested right off the bat because it's python and will probably take a deeper look.
Still interested in your gripes against chef/puppet, but probably more puppet.
For context I am a ruby developer first, DevOps second. The last cluster I managed was while I was working for Pivotal Labs. Out client had 50 VMs on top of about 30 Metal servers. We used OpenVZ, Scientific Linux (because centos didn't have ipv6 firewalls, WTF?) and chef-server.
We had to add a few patches to get features we wanted such as graceful shutdown and fix up the way the CLI api worked.
Chef was tested, but the way the tests were implemented were done extremely poorly. When testing a class they stubbed their own internal classes. Basically what ended up happening was none of the interaction between the methods were being tested. I was amazed that this class worked at all. This happend quite a bit too. I understand that what chef is trying to do is very difficult but maybe the problem is that they are trying to do too much.
I don't want my ops tool doing everything, I only want it to setup my servers and make sure that they are all the same.
Groupon has a pretty good internal solution that they are trying to open source soon. They released the client a few days ago. Now if only they had some documentation and the server.
But don't use chef... seriously... It is poorly tested, and lets you do way too many stupid things. Same with puppet.
Check out salt stack
http://docs.saltstack.com/