Hi David,
I suspect the root problem is that you cannot upload a 13GB file to S3 using a standard PUT (putObject) request since the maximum size of any uploaded object is 5GB. S3 supports storage of larger objects using "multipart" operations -- which allows sub-5GB objects to be uploaded then re-assembled service-side -- but it doesn't look like you're using this approach?
For debugging purposes you are probably best off turning on HTTP header logging for the HttpClient library JetS3t uses. JetS3t comes with a log4j.properties file that includes a line for tweaking this setting, or you can set the following property wherever your Log4J settings are drawn from:
log4j.logger.org.apache.http.headers=DEBUG
I suspect S3 is cutting off the pipe when it realises a 5GB+ object is incoming, though I would have expected it to return an error immediately (via the 100-continue mechanism) rather than waiting 15 minutes. Are you setting the Content-Length header prior to upload to inform the service of the incoming object's size?
Hope this helps,
James