We have a Lightning file uploader, and some of the files could end up being quite large (probably up to 1.5MB of base-64 encoded data), but we also have a slow network, so users might assume that the process is hung when it's really not. Previously, in Visualforce, we used "onprogress" to show a dual progress bar setup like we used to see back in the old days of Microsoft Windows (file progress/total progress). I didn't see anything in the documentation regarding this, but I was wondering if anyone knows of a way to detect how far long the upload progress is on large payloads. The result payload is small, and the Apex Code called runs in milliseconds, it's just the upload that takes ages. I'd prefer a more accurate solution rather than guesstimating.
We had a similar situation and considered splitting the file into batches. (We decided not to, since our files weren't too large after all.)
If you have n batches to be uploaded consecutively, you can divide a progress indicator into n parts, ignoring that the last part should be shorter. It's not accurate, but at least your users will have a sense of progress.