Port away from the custom KGAPI2::Job implementation and use KJobs instead. The KGAPI2::Job is closely modeled after KJobs, so it should not even be too much of a API break but will simplify the code internally.
Using KCompositeJob will give us sub-job handling for free.