### Godot version

v4.1.1.stable.official [bd6af8e0e]

### System information

Godot v4.1.1.stable - Windows 10.0.22621 - Vulkan (Forward+) - dedicated NVIDIA GeForce RTX 3070 Ti (NVIDIA; 31.0.15.3640) - Intel(R) Core(TM) i7-10700K CPU @ 3.80GHz (16 Threads)

### Issue description

Running the following code causes a memory leak:
```
var tween = get_tree().create_tween()
tween.stop()
queue_free()
```

### Steps to reproduce

1. Create a Tween
2. Use `tween.stop()` 
3. `queue_free()` the Node that created the Tween

### Minimal reproduction project

[TweenMemoryLeak.zip](https://github.com/godotengine/godot/files/12156855/TweenMemoryLeak.zip)

if (tweeners.is_empty()) {
		dead = true;
		ERR_FAIL_MSG("Tween without commands, aborting.");
	}
	for (Ref<Tweener> &tweener : tweeners.write[current_step]) {
		tweener->start();
	}
}
void Tween::_stop_internal(bool p_reset) {
	running = false;
	if (p_reset) {
		started = false;
		dead = false;
		total_time = 0;
	}
}
Ref<PropertyTweener> Tween::tween_property(const Object *p_target, const NodePath &p_property, Variant p_to, double p_duration) {
	ERR_FAIL_NULL_V(p_target, nullptr);
	CHECK_VALID();
	Vector<StringName> property_subnames = p_property.get_as_property_path().get_subnames();
	if (!_validate_type_match(p_target->get_indexed(property_subnames), p_to)) {
		return nullptr;
	}
	Ref<PropertyTweener> tweener = memnew(PropertyTweener(p_target, property_subnames, p_to, p_duration));
	append(tweener);
	return tweener;
}
Ref<IntervalTweener> Tween::tween_interval(double p_time) {