500 series errors are usually timeouts or connection errors between the client and server.
Really large file uploads are a bit dicey -- if the connection gets interrupted at all, you wind up with partial uploads. So if you don't have a means to resume (via an FTP client like Filezilla or whatever), you won't succeed. I've tried to upload and resume 20+GB VM images and never gotten them succeed until I changed connections to a rock solid, stable fiber link.
But if you absolutely need web uploads, you may need far larger PHP timeouts -- execution time, upload sizes, post sizes, etc.