I've made some JS that embeds the dropzonejs.com library into Knack. This integrates with form uploads properly -- all form validation logic is preserved, and any non-file-input fields still work as expected.
Code at https://github.com/hamiltont/knack-extensions for anyone interested. Some TODOs do remain, but it's functional enough that I am using it on my own site.
Video of it working - https://youtu.be/caEui-qmlUI