Why have a `destroy` when `removeAll` should clear all references and allow garbage collection, while still allowing the signal to be used in the future. Tasks: - Deprecate destroy - Clear `pendingRemove` in removeAll