Given the existing frameworks, building a properly functional playback queue is probably the biggest challenge in designing a modern music player.
Currently, Cs does all the work. Queue management is handled entirely above the system player. I manually shuffle and repeat the queue. I exploit a little quirk in the MediaPlayer framework to get things to work without gaps in the audio. This is clunky.
I've recently discovered a few new techniques that may allow me to completely redesign the queuing system in Cs to integrate much more closely with the existing Apple queue and queue functions (shuffle, repeat, etc.). My hope is that if it works, the functionality will remain the same, but perform better and be more stable long term. Plus, it should be much more efficient code, making tweaks and improvements a lot easier.
We'll see. Rest assured I won't implement a new system until I'm 100% happy with it and it has been beta tested extensively. If you want to help, hit me up with a valid email address and I'll add you to the testing program.