I would not use a DeferredList here.  I would simply add an errback to each deferred _before_ passing it to gatherResults.

```python
deleted_policy_ids = set()

def eb(failure, policyId):
    failure.trap(NoSuchPolicyError, NoSuchScalingGroupError)
    deleted_policy_ids.add(policyId)

deferreds = [
    self.execute_event(log, event).addErrback(eb).addErrback(log.err) for event in events
]

d = defer.gatherResults(deferreds, consumeErrors=True)
return d.addCallback(lambda _: (events, deleted_policy_ids))
```
Or something along those lines.