### Godot version

4.0.rc

### System information

Any

### Issue description

If the RESET animation is generated at the same time as the Bezier track is generated, the bezier edit button will not be active.

![image](https://user-images.githubusercontent.com/61938263/218256176-88b1b196-7b6b-4404-84ad-e8694f23bb1b.png)

Also, if you delete a track in the Bezier Editor, or in undo redo, it will not update correctly.

### Steps to reproduce

![image](https://user-images.githubusercontent.com/61938263/218256230-4b0219d5-87e4-453a-8294-59f8feb0cfd5.png)


### Minimal reproduction project

N/A
GDCLASS(AnimationMultiTrackKeyEdit, Object);
public:
	bool setting = false;
	bool animation_read_only = false;
	Ref<Animation> animation;
	RBMap<int, List<float>> key_ofs_map;
	RBMap<int, NodePath> base_map;
	PropertyInfo hint;
	Node *root_path = nullptr;
	bool use_fps = false;
	bool _hide_script_from_inspector() { return true; }
	bool _hide_metadata_from_inspector() { return true; }
	bool _dont_undo_redo() { return true; }
	bool _is_read_only() { return animation_read_only; }
	void notify_change();
	Node *get_root_path();
	void set_use_fps(bool p_enable);
protected:
	static void _bind_methods();
	void _fix_node_path(Variant &value, NodePath &base);
	void _update_obj(const Ref<Animation> &p_anim);
	void _key_ofs_changed(const Ref<Animation> &p_anim, float from, float to);
	bool _set(const StringName &p_name, const Variant &p_value);
	bool _get(const StringName &p_name, Variant &r_ret) const;
	void _get_property_list(List<PropertyInfo> *p_list) const;
};
class AnimationTimelineEdit : public Range {