Thanks @andy. I have re-engineered my plugin as you describe - but it was substantially more complex than I thought it would be - and I still have a lot of issues.
For instance - Rhino.PlugIns.RenderPlugIn.CreatePreview() is not being called when I click Thumbnails->Update All Previews.