don't dispose the session when executing the process (like in script task) because it will kill the engine while it's running.
Dispose the session once you get control back from ksession.startProcess() method. When using timer you could add some delay (like Thread.sleep) to allow timer to fire.
HTH