In D15207 I've made some bad assumptions, and previous indexes were not optimal for two reasons:
- For unassigned tokens, we can't efficiently query for "attribute_not_exists" on the assignedInstance-index because GSI doesn't include items where the hash key attribute doesn't exist
- For expired heartbeats, we can use lastHeartbeat-index, but it's not ideal since lastHeartbeat as a hash key, which means we can't do range queries efficiently
This diff fixes this