The server reply immediately after STOR matters more than the STOR command itself. A log ending around that point can describe several different failures.
If you see an immediate 550 or 553, look at the destination directory, account permissions, filename rules, or quota. If the server sends 125 or 150 and FileZilla then sits there without transferring bytes, the server accepted the upload but the FTP data channel never became usable. That supports the firewall or NAT explanation. A transfer that reaches completion but never receives 226 Transfer complete is yet another case, often involving server-side processing or a connection being dropped after the data was sent.
There is a common complication that switching active and passive modes will not necessarily expose: the router’s FTP ALG. This feature wants to rewrite FTP connection details and gets even more confusing, especially if the FTP is over TLS but then the router cannot read the encrypted commands properly. If your router has an option named FTP ALG, FTP helper, or FTP inspection, try disabling this temporarily and reconnect from scratch. A restart only of FileZilla leaves the router’s broken session tracking intact.
I wouldn’t be disabling TLS and be passing a real login credentials over plain FTP just to appease an old router feature. Use a temporary test account if the host is insistent on that diagnostic. SFTP is better if the server offers it, but an SFTP connection needs an SSH service and usually a different port. Picking SFTP in FileZilla will not magically make an FTP-only account support it.
There is a local-file edge case to check with scans stored on the desktop. If the desktop is being synchronized by OneDrive or another cloud service, make sure the files are actually downloaded and available offline. A placeholder file pending synchronization or security software scanning every document can delay FileZilla before it sends anything. In that situation the log generally has a local file access error instead of server reply, and moving one scan to an ordinary local folder is a quick way to isolate that from an FTP problem.
I agree with @megaowl5 that the log is the useful evidence, but STOR by itself does not prove a permission or quota failure. Include about ten lines before and after the timeout, with the username and host details removed. The reply codes and whether the byte counter ever moves should tell you which side stopped responding.
Up the inactivity limit isn’t a fix, but can act as a diagnostic device. If a longer one just makes FileZilla sit around waiting before declaring zero bytes moved, put it back and look at the data connection. If the upload ultimately completes after the server has spent time looking at every scan, then the server or its malware scanner is slow, and your hosting provider needs to fix that.