I would set the timeout on the whole AWS SDK operation (not at the http level). In node.js, using bluebird
I can wrap the promise object returned by the SDK and then put a timeout on it. e.g.
const Promise = require('bluebird')...
Promise
.resolve(dynamodb.get(req).promise())
.timeout(getTimeout()) // calcaulated from time rem - reserved time for fallback actions
.catch(err => doFallback())