The apache log you posted didn't seem to contain anything useful, especially because it didn't include one of your upload attempts. Remember, you need to find the logs for when your upload failed, so you can track down why. You might also find something useful in the error log. It requires you to monitor the logs during your uploads, and as soon as it fails, comb through the logs to find any information about why.
tail -f /var/apache2/access.log
You also mentioned that you wouldn't need to upload anything over 2GB, but now you're saying a 3.1GB file fails. There is obviously a point at which you can't expect this to work, which is why I think you need to use a client of some sort which handles sending smaller chunks of data to avoid exactly these types of issues.
This is honestly beyond my level of knowledge, but after researching what the theoretical max is for posting files using PHP, I found this PHP bug: https://bugs.php.net/bug.php?id=44522&edit=1
I think unless you dive much deeper into this, you are stuck with a hard limit of 2047MB
I'd be interested if you're able to upload a file that is exactly 2047MB or thereabout.