Да, у кода должен быть тип (auth, change_phone, reset_password и т.п) иначе будут коллизии, один процесс может перетереть код другого, удаляй коды конкретного типа (не все подряд)
Всегда создавай новый код при запросе, даже если старый ещё жив, юзер может потерять смску или просто передумал и начал делать чето еще что тоже требует смску
Что бы не долбили смсками, делаешь throttle