I keep coming back to the CRM bit. Upsets happen, whether crew induced, automation mismanagement, turbulence, or spacial-D. Doesn't matter how it happened, any crew member in the seat should always be aware and ready to take the controls. In multi-place aircraft that have a small enough flight deck, NOTHING communicates "I have the aircraft" and snaps the offending dude out of it as quickly as physical contact (i.e. backhand to the shoulder), ESPECIALLY when the guy on the controls is unconscious of his error. The flinch mechanism is strong when you're stressed, and usually works quick. I have yet to fly with a kid that A: didn't want me to smack him, or B: failed to appreciate it's effectiveness afterwards (a memory check says I've used this avoiding 2 pattern stalls, 3 unrecognized spacial-D's and 1 bad habit of calling the gear down before they're down).
People may not like it, but there is no denying the effectiveness of physical contact as a confirmation or intervention reinforcement.
My question for this 777 crash remains: what was the Captain doing, especially when flying with a known low performer? The audio makes is sound like he was completely unaware.
As for stall training, I find it laughable that we as professional pilots going back for refresher training would NOT want to explore upsets and deep stalls to a PhD level. I personally see no reason to ever delay power inputs in these situations (ALL engine have a spool up, even if it's 4 seconds). I also advocate pilots exploring the effectiveness and energy saved by unloading the aircraft before maneuvers in upset and stall situations (constraining this type of training to the sim only). Amazing how quick an aerodynamically unloaded aircraft responds to inputs, regardless of attitude or energy state.
The only hard and fast I stand by: Recognize, Confirm, Recover. Beyond that I don't believe any recovery should ever be rote.