Found the solution,
Thanks to Salaboy and Maciejs for their assistance via #jbpm IRC chat.
The answer for my first question is yes the task is automatically persisted.
for the sample code, I use and modify Salaboy's example from
https://github.com/Salaboy/Drools_jBPM5-Training-Examples/tree/master/jbpm5/06-jBPM5-HumanTasksAndRulesExample
changed the jbpm version to 5.3.0.Final
and changed
<dependency>
<groupId>org.jbpm</groupId>
<artifactId>jbpm-human-task</artifactId>
<version>${jbpm5.version}</version>
</dependency>
to
<dependency>
<groupId>org.jbpm</groupId>
<artifactId>jbpm-human-task-core</artifactId>
<version>${jbpm5.version}</version>
</dependency>
<dependency>
<groupId>org.jbpm</groupId>
<artifactId>jbpm-human-task-hornetq</artifactId>
<version>${jbpm5.version}</version>
</dependency>