I determined to start with a simple solution, and no sooner did I set off down that path than everything started to fall into place. What I needed before I could have a simple solution was a MusicTrack object to handle the moment-to-moment playing needs of each music track, and once I had that in place it only made sense to have that handle the syncing between tracks, and once THAT was in place it became pretty straightforward to have it handle its own looping needs and other logistics… and so forth. When the dust settled, I found that I’d basically ended up solving the problem that had been driving me crazy for the past couple of days!
Now, that’s not to say there won’t need to be any custom coding, but rather saying that the custom stuff will be reserved for extraordinary circumstances, and most of it should be fairly easy to do within the framework I’ve established. Who could ask for more than that, really?