the completWithResults method hides the content marshalling stuff so you can simply pass your result data (usually Map) instead of preparing ContentData object first.
What results you want to get back after task is completed? When completing you are giving the results to the task server so you already have results...
HTH