Adding on to kuligs2's post, remove the existing await and queue_free() and do something like this:
func _ready() -> void:
$AnimationPlayer.animation_finished.connect(_on_animation_finished)
func _on_animation_finished(anim_name: StringName) -> void:
if anim_name == 'Death':
queue_free()
Another issue is that if the code you posted is in _process() or _physics_process(), then anim.play("Death") could be getting called repeatedly, causing the animation to keep restarting without ever finishing.