God, this is annoying. I tried the workaround suggested to turn off cellular data and wi-fi. This almost solved the problem. But I quickly discovered that it didn't work quite the way I expected it to. I turned off data and wi-fi and went to take a nap. I was awoken by a reminder (apparently, those are activated by the iPhone, rather than pushed by the cloud). And then, when I re-enabled cellular data and wi-fi, I received an iMessage from my wife that she had sent a few minutes earlier. I had read elsewhere that SMS/MMS would go through even if data and wi-fi were turned off, but apparently that's not the case with iMessages (if someone else has experience with this, please confirm). In iOS 4, I could turn off notifications with the click of a button, in which case I would be awoken by text messages and unbothered by calendar reminders, which is exactly what I wanted. Now all I've got is a clumsy workaround that gives me the opposite result.
I read that if you plug something into the headphone jack, you'll only hear the iPhone speaker if the phone rings. I'd be interested to know whether you hear the speaker when an SMS/MMS/iMessage arrives as well (which is what I want), and in no other circumstances. Maybe I'll experiment with this after I finish my nap. If someone else knows whether this is an effective workaround, please post here.
And if anyone knows of a better workaround, please post that as well.
By the way, I've left feedback at
http://www.apple.com/feedback/iphone.html I encourage all of you to do the same.