Hi Tom,
Cues themselves don't technically loop - they can play a sound that loops though. But if you want to dynamically (through code) control the looping behavior, one straightforward way would be to keep the sound itself non-looping. When you start playing the cue, register for a XACTNOTIFICATIONTYPE_CUESTOP notiifcation on it, and when that notification fires, retrigger the cue. If you're concerned about a possible gap between the stop and restart, the content creator can set the cue to be intance limited to 1 (only 1 plays at a time), and set any subsequent retriggers of that cue to 'queue' (rather than replace, fail, etc.). Then you as the programmer could register for the XACTNOTIFICATIONTYPE_CUEPLAY notification, and use that to trigger the next instance, which the XACT engine will keep queued until the previous one finishes.
Hope this helps!
Cheers,
Scott