Ok, so what I came up with was to actually change the source code. Its not a lot to change, but its not 100% perfect.
Also, I can't take credit for this, because I gathered the combined changes required from various sources, but here it is:
The Accordion Class needs to be changed from a WebControl to a CompositeControl.
source: here
And both the Accordion Class and the Accordion Panel Class need to use the INamingContainer.
source: here
Here is an example of the change:
was: public class Accordion : WebControl
is now: public class Accordion : CompositeControl, INamingContainer
Hope this helps some people.