And this setup is also encouraged by HashiCorp (at least I saw a talk by them).
Use ansible for your “smart” sequential executions and Terraform as a sane wrapper for state.
I find it hard to figure out how to use GitOps with Ansible? How do you make a PullRequest which indicates that something should get deleted? You still would have to keep around an ansible playbook for the stuff you want to delete.