Terraform provisions: it creates and destroys infrastructure and tracks its state. Ansible configures: it brings the inside of a host to a desired state, idempotently.
Trying to configure hosts with Terraform means provisioners, remote-exec and a state file recording things it cannot actually reconcile. Trying to provision infrastructure with Ansible means cloud modules and no dependency graph or state.
At acAIberry the split was clean: Terraform for the infrastructure, Ansible for the application tier configuration. The gain from the Ansible side was not saved time, it was repeatability. The same playbook against a rebuilt host gives the same state, which is a far easier claim to evidence than a runbook somebody followed.