NXOpen external application Initialization and App deployment through static DLLs

We are presently developing an external NXOpen application. This is a console based application which can also be executed in batch mode. We will be deploying this application on several machines both Win7 and Linux. NX installation is needed for such an application to work.

Problem 1:
The NX version used here is updated from time to time as and when Siemens releases them. This is taken care by the system administrators and updates are done through push mechanism. Thus there is a distinct possibility that some of the functionalities/routines that are changed between versions may affect the behaviour of the application being developed or the results may vary. This is undesirable on our part.

We are exploring the possibility that a set of tested NX DLLs (and only needed ones) to be shipped along with the tool such that the application will refer to 'these DLLs' instead of the NX version installed on the system. Is there a way to do this ?

Problem 2:
NX takes a long time for initialization. We tested and found that the initialization for application takes around 2 minutes. This doesn't sound reasonable especially due to the fact that the said application being developed may be executed iteratively through another script. Each initialization takes around 2 minutes which would mean the whole iteration process may run in days.
a. We are looking for a solution to bring this time down to a few seconds. Is there a way to achieve this?
b. Or An option to launch NX session (without UI) as a constantly running process (similar to a windows service) and a way to attach our application to this process when needed to run iteratively. This approach should be usable on other platforms like Linux as well.

Thanks is advance for all the help here.