It’s worth pointing out that while the tests in this article found a delay of up to 28 minutes, “DynamoDB typically deletes expired items within 48 hours of expiration (source)”.
The exact duration within which an item truly gets deleted after expiration is specific to the nature of the workload and the size of the table.
Here’s another look at DynamoDB TTL as a scheduling mechanism from Yan Cui: https://medium.com/theburningmonk-com/dynamodb-ttl-as-an-ad-hoc-scheduling-mechanism-bda119116887
And a follow-up to Yan’s post from myself that offers some other suggestions: https://medium.com/@zaccharles/there-is-more-than-one-way-to-schedule-a-task-398b4cdc2a75