Turning off the plug-in in plugin manager does not unload it, but I've found a way to do it. I wrote my own plugin loader layer. My loader is loaded into MC as a normal plugin and then loads my real plugin in a way that allows unloading. I still can't unload my loader, but since it is stable and doesn't change that's fine. But, since it allows me to unload and reload my real plugin I can not rapidly recompile my plugin and try the changes without restarting MC.
W00t w00t!
And before anyone asks, yes, I do plan to give away my code, but it needs some clean up first. Also I'm developing with the beta version of Visual Studio 2005 and the .NET framework version 2. Both of these are not yet released so many/most people wouldn't be able to use my projects yet.
Finally, I'm also working an creating some more .NET friendly wrappers for the MC automation classes. It'll definitely be a while before those are complete, but I hope to release them too.