In my extension, I've got a loop running in a separate thread that periodically polls for several values. I haven't yet added shuffle and repeat status, but I'll add polling for those when I do. I would be real happy with a single OnPlayerSettingChanged event which would fire on changes to shuffle, repeat ("continuous"), crossfade, autodj on/off, and stop-after-current. Maybe others I'm not thinking about. Polling is just so lame.
Slightly related question: does it ever make sense to run with both shuffle and repeat turned on? I don't use shuffle when playing from MM (altho I do use AutoDJ, a much superior solution); does shuffling normally stop after all items in the Now Playing list have been played?