idea: should we set here `this.state = 'failed'` if `this.download.state === 'stopped' && this.download.error !== null` ? I think this would be more "OO", otherwise `this.state` is just a shortcut to `this.download.state` and does not bring any more value.

Then in `_wontNotify` you just need to check for `this.state === 'failed'` (you need to update `this.state` in the first line of `_update` of course). And then you don't need to pass `state` to `_getIcon`, nor to compute the state in `_getInfo`, you just need to use `this.state` everywhere.

Does that sound good?