The time out for bounce messages is normally 11.6 days. This means that a bad address will take longer that 3 weeks to be removed. Usually, this delay is desirable. After all, it is much worse to remove a subscriber just because the address had temporary problems that to send a few extra messages and receive a few extra bounces.
However, for large lists, bounce handling can consume a considerable amount of resources. To decrease the load, remove all ezmlm-warn(1) lines from the DIR/editor, and DIR/manager files. Instead, execute:
/path/ezmlm-warn DIR /path/ezmlm-warn -d DIR
daily during off-peak hours via a cron script. The second line can be omitted if you are not using the digest capability of the list.
This should not be necessary for ezmlm-idx>=0.32. That version adds much more efficient bounce handling, making this type of modification usable only for extremely large lists with many bad addresses (unusual for ezmlm lists) and for hosts that are working near the limit of their capacity (where shifting some qmail load to off-peak hours is worth the effort).
In addition, you may want to reduce the time out for bounces from 11.6 to a lower number of days, e.g. 5. To do so, add -t 5 to the ezmlm-warn(1) command line.
If you start with a list from a list manager that does not have bounce handling, chances are that you have many bad addresses in your list. You can always execute:
/path/ezmlm-warn -t0 DIR /path/ezmlm-warn -d -t0 DIR
to move bounce handling one step forward per execution. Users whose mail has bounced will be sent a warning. Users for whom the warning message has bounced will be sent a probe.