I think the best way is hiding in plain sight, by that I mean you don't need any special stuff, like a paper wallet in safe-deposit box, just a normal wallet.dat file with basic precautions used as if you were only store 20 dollars in you won't raise any suspicion.
Password is only in your memory, nowhere else, no problem with that.
The main point is that bitcoin address in the wallet.dat file shouldn't be associated with your person.
The first obvious step is that you don't make payments from and don't accept payments directly to that address so your balance can't be seen on blockchain.info. But regularly you still want to make payments to or withdraw money from your million dollar Bitcoin nest egg. So if no one knows it, you shouldn't hide it that much right? Just as if it were not a million but only 10.000. Or 1.000.
I don't know much about the protocol or how the data flows through the network (though I would be interested in a short, easy to understand explanation), but which does make more sense if you want to keep things simple, eg. hiding in plain sight with your 1.000.000 or even just 1.000 deposit? To run the Qt client through TOR, through a VPN or through your ISP?
My thinking is that your own local storage is still the best storage, digital is still better than paper, you can hide a file easier than a safe-deposit box.
Run the client to create noise with lot's of transactions going through you not associated with you at all and to be a better network citizen.
Am I thinking along the right lines here? A no-nonsense attitude.