We tend to use the $ClientSlug-#### naming format for computer names. It allows the user to memorize a simple 2-4 digit number to identify their computer, and for us to remember the computer for the same reason.
Currently we use a CWA script that does a simple index counter with no safety checks at all, but generally it works. With Immy.Bot, I noticed an issue, it goes to the next highest number, which is smart, but during testing I had a TEST-0001 computer, which I let Immy domain join. Then I wiped it and removed the computer from Immy and ran it again, which resulted in a domain join error because the name was taken. I reran onboarding with a manually set name and it was fine, but against the spirit of automation. So I think whatever system that picks the name, that is smart enough to read the Immy.Bot list of computers, should also scan the client’s domain controller too.