fix(scope): correctly handle canceled listeners bookkeeping