hello.
yep, the caching is causing problems with the partial rendering of the scriptmanager control. the problem is that during the callback, if event validation is enabled, all the controls will be rendered (including your user control). since you've cached the user control, it'll be the responsibility of one of the derived classes od basepartialcachincontrol to render its content. unfortunatelly, the scriptmanager uses a dummy text writer which doesn't have a constructor that receives a textwriter, you'll get that exception when that classes renders the user control maintained in the cache.
so, this is definitly a bug.
to solve it, you have to set the enableeventvalidation to false on the page directive (which might not be a good thing!)