First of all to get most of the solution you should use RuntimeManager in most of the cases. JBPMHelper is more for test purpose to simplify the setup and manual Kbase creation is the last (and lowest level) approach if you can't use the two mentioned first.
Would be good if you could provide more details what is not working as expected ... but if you already found the way to make it to work that's even better.
When it comes to timers, what you mean process terminate? Does the process instance is aborted or? In general timer is considered as wait state and thus will return the execution to the caller. But will be automatically resumed when timer expires.
HTH