Not that I am aware of. The 500ms window is meant to give time to prepare UI for any visual updates that may take longer, such as network usage. A useful pattern
, especially for SPA, is to use the 500ms to prepare a skeleton. Also, are can have visual updates outside of a 500ms hadRecentInput window... just as long as it does not layout shifting of existing content.
I tried to upload an image using your tool, and indeed, I see a bunch of reported shifts happen. Some of those shifts happen within 500ms, but many happen later. If I throttle the network, things get worse.
The shifts happen as your UI adjusts for the download progress view, and not after the image is done downloading. Actually, there are no reported shifts once the download is complete that I can see. So, I don't think it's a problem with long uploads per se, but rather it seems like it may just be taking just a bit too long to switch into your image upload view. Indeed, I can visually see plenty of shifts over a period of a few seconds. Also, I see the first renders of this SPA UI are not the same as subsequent renders, so if you cannot load the transition UI within 500ms, maybe you can at least delay until you have the final render? Not sure.
(I will concede that it is debatable if the shifts here are "unexpected" by the user... but I think this is similar to cases with layout inducing animations. Since there are avenues to address these shifts, I do think you can make improvements here which would be better for UX).