Welcome to the boards
1. I think there's no simple way to get rid of this, other than slowing down the scroll rate. It's a fundamental problem with scrolling, since the wave is drawn only once per frame then the frame is scrolled. That'll always leave a gap between successive drawings of the wave.
2. This can be done very simply with pixel shaders. Check out the warp shader in the attached preset, basically all it's doing is the same as the dx equation in the per frame code (which is commented out now because it's not needed anymore).
The important part is the sampler type. The four types are fw, fc, pw and pc, milkdrop uses the fw type as default. The w's are the same as setting texture wrap to 'on' in the post-processing menu, the c's are the same as setting it to 'off'. The f's sample each point as an average
of the points around it, and this is where the bleeding comes from. The p's on the other hand sample the nearest point directly, so you get no bleeding. Which you use depends entirely on the preset, some look really ugly with point sampling and others look ugly with averaged sampling.
Setting zoom=1 in the per frame code also helps, since (like warp) zoom isn't completely 'off' until it's set to 1 in the per frame code. You can see this by commenting out zoom=1 in the attached preset.
3. There's a few ways to do this. Since the colors are 'stuck' on the border of the preset (a side-effect of using no texture wrap) you can simply add a small outer border set to black. I've set this up in the preset.
That's the long and short of it
Always nice to see some new people working on presets, I'm pretty new here myself.