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