At some point since I wrote the iPhone Core Audio Getting Started post, a small bug in my AudioStreamBasicDescription on the multi-Channel Mixer input went from not mattering to making the output a garbled mess. Those stream descriptions are tricky devils!
To fix it, you need to change the line.
desc.mFormatFlags = kAudioFormatFlagIsSignedInteger | kAudioFormatFlagsNativeEndian | kLinearPCMFormatFlagIsNonInterleaved;
to
desc.mFormatFlags = kAudioFormatFlagIsSignedInteger | kAudioFormatFlagIsPacked;
or
desc.mFormatFlags = kAudioFormatFlagsCanonical;
Ahh, pure, clean sine wave.