以下、すでに色々なところで既出です。
アプリをiOS4の上で実行するとホームボタンを押して終了したつもりでも、アプリには applicationWillTerminate メッセージが送信されていないようです。バージョン4より前のだとシングルタスクが大前提なので、アプリ終了時に必ず呼び出される applicationWillTerminate で、安心して設定保存だのクリーンアップ処理だのを書いていたわけですが、これがiOS4だと呼び出されなくなってしまいました。
さらにDockでアイコン長押しするとタスク終了できるようになっていますが、ここでタスクを削除してもアプリにはこのメッセージが送信されていないようです。KILLシグナルで強制終了する仕様らしい。
ということで、アプリの終了(正確には一時停止だと思いますが)処理は、applicationWillResignActive か applicationDidEnterBackground のメソッドにお引っ越しする必要がありそうです。
これは本当に、iPhone 3.x以前のアプリもiOS4 SDKで動くように修正しないとまずいかもしれないです。もう!