I had this usecase in my previous application. I aslo didn't find any nice solution so I finally used the description of the task node to store the link:
<task name="taskname" swimlane="main">
<description>task decription displayed on the UI</description>
<transition to="next" />
then you can get the link with task.getToken().getNode().getDescription()
Other solutions include setting a task instance variable (see TaskInstance API) or supplying a custom task instance factory. If you want to provide a link to the task form page in the JSF console shipped with jBPM3, you can compose it from the task instance ID as follows.