My main request is to fix
DM-11865 by adding support to pipe_base ArgumentParser for additional repo arguments. I think it would be fairly simple to do that and it would allow you to remove a lot of duplicate code and "TODO" work, leaving the new code in ap_pipe much cleaner and easier to follow.
I also suggest that you make ingest a task (a subclass of pipe_base Task) as it is easy to do and would simplify some of the things you are doing now and hopefully eliminate the need to pass fullMetadata around.
Other than that it looks good. Thank you for the excellent documentation.