By custom all I really mean is you make the graphics and you decide what the events mean. For example, if you wanted to make a custom button with a different look and feel than the default button, you would make 3 drawings, up, down, and disabled. Say you wanted it to change colors when the mouse went over it, make a fourth drawing and then code that in too.
A more applicable example, say you want the ability to move a point in time onf the wave forwards or backwards (wave progress say). You would have to define yourself how the drawing will change based on the inputs. You don't get it for free like you would in a default control.
Stick with GDI+ and see how it goes. It is definately easier to code and distribute. As far as the two panel idea...what about the transparency? Can you actually get the layering affect you want through that?
Hit the graphics forum for some more help on stuff to draw on and how to draw.