This is really simple but annoyed me for a few minutes until I got .NET Reflector up, so hopefully this will help someone else.
The render method on ASP.NET WebControl based server controls seems to be adding a span tag around the HTML output for some reason, to fix this simply override the Render method:
protected override void Render(HtmlTextWriter writer)
{
RenderContents(writer);
}