Found a better way to get a history task via HistoryActivityInstance:
HistoryActivityInstance hai = historyService.createHistoryActivityInstanceQuery().processInstanceId(pid).activityName(activityName).uniqueResult();
if (hai.getClass() == HistoryTaskInstanceImpl.class)
HistoryTask ht = ((HistoryTask)hai).getHistoryTask();