I assume that your game is exiting when the NOTIFICATION_WM_QUIT_REQUEST
is processed, right? If so, that's why the animation isn't playing.
You can effectively "ignore" the quit request using this code:
get_tree().set_auto_accept_quit(false)
With that done, the game won't exit and your animation should play. However, you'll then need to manually exit the game when the animation finishes playing.
To do that, you could wire up the animation_finished
signal in the outro scene. In that callback, you can exit the game via:
get_tree().quit()