Thanks for your answer. I stripped BlockAlignReduction and WaveFormatConversionStream from the code, but now I realize that you are saying they are not necessary for MP3FileReader whereas in the code I posted above they are applied to WAV streams, not MP3 streams. Should they still be used for WAV streams?
Also, I have cleaner code with the workaround I came up with on StackOverflow at http://stackoverflow.com/questions/10243031/why-does-playbackstate-remain-at-playing-after-playbackstopped-fires
Would you mind having a quick look?
Many thanks!