The issue with inventing a custom upload tool is that it adds maintenance costs for the community and a sort of cognitive dissonance across uploaders. This new project will end up being as big as rewriting UploadWizard from scratch, *or* it will seriously risk ending up killed like the MobileFrontend custom upload tool. I'll avoid going into details because a poem can be written about each of your list points, especially "### Description/licensing/category form". The only possible escape I see is that any and all upload logic you create must be in core and used both by Special:Upload and Special:UploadWizard. T91717 must not and can't possibly be something done inside VisualEditor.
Nemo