Add exponential backoff when reading from S3

Closes #1332