We hit this at Adex early on. Shared remote state without locking, two applies overlapping, and a state file that no longer described reality.
Recovering meant reconciling by hand against what actually existed in the account, which is slow, error-prone and entirely avoidable.
Remote backend with locking, separate state per environment, from the first commit. The cost is a few lines of backend configuration. The cost of not doing it is an afternoon and a loss of confidence in the state file, which is worse, because a state file you do not trust makes every subsequent apply frightening.