iOS 4.3 で正しく動作するアプリがありましたが、iOS 5 にアップグレードすると別の動作をします。
iOS 4.3 でこれらの行を実行した後、mp.playbackState は MPMusicPlaybackStatePaused に設定されますが、iOS 5 ではまだ MPMusicPlaybackStatePlaying に設定されています。
MPMusicPlayerController *mp = [MPMusicPlayerController applicationMusicPlayer];
if(mp.playbackState == MPMusicPlaybackStatePlaying)
[mp pause];
同じイベントループ内でplaybackStateが更新されていないと思いますが大丈夫ですか?