1 - You coul have a .wav file (it'll have to be shortish and not of the highest quality, otherwise it's going to be too big to precache, though) be played either in replacement of a environment sound or (the way I usually do it), just create a new, invisible entity which will play it throughout the level (something like "sound (self, CHAN_VOICE, "misc/yoursound.wav", 1, ATTN_NONE);" - I think) in loops of a time you'll preset (through nextthink). That way your music could also be heard in engines others than DP. This is how I did it in Quakability Bot Arena (and its first public, infamous "dance tracks" version

2 -Here, too, there might be less roundabout way to do it, but what I usually do is create a "dummy" entity in the level to which I assign various values in the map editor, then, in QuakeC, I add something like "if (self.tempyourvalue == 1) yourvalue = 1" if I want to make these values global. Again, this is maybe a ridiculous way to do it, but it works

3 - Can't help you there...