We've had an unexpected fork in the past that caused a split between clients. While no hardfork is like any hardfork we generally follow these rules and steps:
- Identify and announce the issue;
- Create a test to replicate the problem;
- Fix (very important step :-P) and mark the forked block;
- Release it out on to the public (usually special care goes out to miners).
Most important is, as you already said, not to panic. Panic leads to inefficiency and potentially more issues. We've also got a emergency room where we gather in case of emergencies and we keep a list of phone numbers of the core devs whom we can call or text.
All in all key is to keep communicating internally and externally and let the community know WTF is going on.
EDIT: on reddit George added some good additional resources (1, 2, 3, 4, 5) and I'll quote:
I'd like to add that we take the this super seriously, and you can get a > pretty decent look at how our hardfork/consensus critical bug/general bug > handling works on the Ethereum blogposts (which, when written and updated > are propagated across all social platforms).