It's more manageable to have automation (i.e., Atlantis) do the apply on the open PR and then only merge if it succeeds. You have to rely on the locking feature of Atlantis to avoid conflicts, but it's worked pretty well at scale at Enova (~50 Terraform changes a day).
I’d recommend testing the Apply step in a staging environment before rolling out.
For releases, the plans don’t need to be committed to version control. Instead they can be generated in CI just before release, then put reviewing the plan on the checklist before confirming the release to prod.
I have yet to see a graceful work flow here in a production environment and would love to hear about one. (No I will not use terraform cloud)