The pilots, mostly, acted legitatemly based on the flawed and lacking data of which they were presented with.

Initially, the captain's non-fear of the storm was based on incorrect weather data based on a mis-configured radar system. His data seemingly grossly underestimated the severity of the weather: had he had the correct data originally he would almost definitely, like every other pilot in the region, known to avoid the area to which they eventually flew into. As soon as the radar was configured correctly, the pilots banked left to avoid it as best they could. How common a misconfigured radar is and how easily it is done is perhaps the most vital piece of information here. No aircraft should be allowed to fly with such important data being incorrect, ever. This needs to be checked and re-checked far better in future. It is the original link in this fatal chain. It was wrong data, not a wrong human assessment of data, that started off this crash sequence. Given the original radar data, the captain made the right call. And there's nothing obsentibly wrong with him going to take a nap, insofar as that's typical protocol.

Due to flying into the wrong weather-zone, the autopilot turns itself off. And that's that from there. Given that this is such a rare event it's notification is relatively minor within the grand scheme of fear and confusion that one would expect to exist for such an event that so drastically affects flying itself. There exists such a massive difference between autopilot and pilot-driven flying that there needs to be an unignorable physical presentation difference between the two: perhaps gently vibrating the control stick, changing the entire colour of the cabin (to, say, orange) using some LEDs and even changing the posture of a pilot's seat to a more upright position to subtly but distincly make for a different "feel" to computer-led flying. You'd just know based on these indicators alone. Perhaps it'd be harder to mentally block the stall warnings based on the notion that "we can't be stalling, the airliner won't let us" when it feels like you're personally in control of the whole airliner. They didn't just "ignore" the 70+ stall warnings, they completely ignored the very idea that it was possible for them to be stalling at all.

Addressing either of these two issues alone could have helped save AF447. Evaluating the other problems presented, like why two pilots can input vastly different instructions through their joysticks with both being in ignorance of one another clearly needs to be addressed (perhaps even a weighted average towards the more experienced pilot's input rather than a straight up average?); why there existed no clear chain-of-command; why the captain didn't get back quickly enough and how to "force" captains to be quicker; the best way to brief exactly what you've been doing more quickly; and perhaps a new technology that's basically "Clippy" for flying, that could say things like "You're in a stall, consider pointing down?"

This was a tragic mistake that ought not to have happen. Based on so much, let's not so easily condemn the pilots actions to stupidity and instead take a moment to consider the sheer horror they suffered after commanding such a massively complex machine in such challenging conditions with so much noise, lights and general "WTF"-ness.

Consider that environment the next time you get frustrated investigating a non-obviousl compile error in your quiet, air-conditioned, well-lit office.