Hi Aaron
First of all, I think it's a good idea to re-use the code that was done for the ControlView. It gives you the API to issue LTTng commands remotely as well as provides the parsing of the command result. I think it's thoroughly tested using JUnit tests (see plug-in org.eclipse.linuxtools.lttng.ui.tests), so that it should be pretty stable. However, even if the API is exported by the plug-in the API is marked as internal. We marked it internal because the LTTng-Tools (remote site) changes quickly and we want to have the freedom to change the API to adapt to these changes. This allows us to release newer versions of the Control feature outside the simultaneous release of Eclipse.
To your other question, if it possible to use the control feature (and in particular LTTngControlServiceFactory and the LTTngControlService classes) outside the org.eclipse.linuxtools.lttng.ui and org.eclipse.linuxtools.lttng plug-ins. Yes, it is possible. You just get warnings in Eclipse because you use internal API's. I actually did that in the test plug-in where the control feature is tested (see plug-in org.eclipse.linuxtools.lttng.ui.tests).
Looking at your example script, it should work. I've done similar things in the JUnit-tests (see org.eclipse.linuxtools.lttng2.ui.tests.control.service.LTTngControlServiceTest). The ControlView will only show these new session once you connect to the remote node or press the refresh button in case you are already connected.