Get Stats
You can find all those information on the ArchivedHumanTaskInstance object. ArchivedHumanTaskInstance class represent a task performed by a user that is finished (HumanTaskInstance represent the same type of task waiting for the user to do it).
Actually for one human task executed you will have several objects ArchivedHumanTaskInstance each representing an individual state the task get through (see https://documentation.bonitasoft.com/bonita/7.8/execution-sequence-state...). On the latest one you can get the id of the user who did the task (getExecutedBy). By doing a comparison of getReachedStateDate of the first state and getLastUpdateDate you can calculate the time taken to perform the task...
For searching the task you should use searchArchivedHumanTasks method of ProcessRuntimeAPI. You can find some examples of SearchOptions usage in the documentation.