Hi Peter,
After some investigation, our software team verified the issue you raised here. They also acknowledged that this issue is a result of how .net COM Subsystem handles reference counts. So there is not a whole lot they can do about it.
As a work around, if you are releasing your app in a month or two, the fastest solution would be the IPlugin solution you suggested. Yes, Iplugin is deprecated in Spokes 3.0, so this will be an interim solution for now. However the core of Spokes 3.0 is implemented in native code, and the issue you raised would not exist anymore, and you would not need the interim solution anymore,
Wei Chu