Likely your math will force the developer to wait twice as long to get confirmation that this job is done. Let me explain - the duration which you are using is only the render time, the total job time includes setup and wrap up -  wrap up being when we save the data to S3. In the case of a 5 minute render, in the ideal case you can expect 20-40 seconds setup, and 20-40 seconds wrap up. We'll miss the duration window 100% of the time, forcing us to wait 2*Duration with 100% certainty [before our callback]. That is in the ideal case. We may also be in a situation where we don't start immediately, but are queued up for some time. Probably you want to keep this poll interval at something more constant, or allow setting some minimum start theshold like -  after duration, start polling every minute.