Here's a good place to start: Licensing multiple products per process
Note - if there is anyone else on earth using TurboActivate on NinjaTrader, anything I do will probably break their code - in the event my customer happens to be their customer.
This sounds like design flaws in NinjaTrader. Plugins shouldn't be allowed to interfere with other plugins. You should push them to make things (a) more flexible so you have control over how you build your plugin and (b) make plugins "isolated" from other plugins. These a problems that are solvable.
In the meantime, if you know this is a problem (other TA users) you can just call TurboActivate.SetCurrentProduct() before any function call.
One idea: what if I upload the "machine-unique" information used by TurboActivate to my web service and validate the licensing from there for each client? Can TurboActivate support that model?
I'm not quite sure what you're asking. You can use LimeLM on your own servers, if you want.