Worker Crash Recovery Test
Timeline:
0s Worker claims task t-123; visibility timeout = 30s
5s Worker container killed (simulate crash)
30s SQS visibility timeout expires
31s SQS re-delivers message
32s A different worker claims t-123 (conditional update: status=PENDING)
Wait — status=PROCESSING not PENDING after first claim. The second worker's conditional update fails.
Fix: visibility timeout expiry must reset status to PENDING, OR use the SQS receive count to detect re-delivery and allow re-claim from PROCESSING state.