Daniel Fisher has a great blog post on how to build a better WaitScreen for ASP.NET. It really details a good step-by-step process for building composite controls.