You announce the launch in advance so that people can prepare. Otherwise, you're discriminating people by time zones giving an unfair advantage to people who were awake when you announced it or weren't at work or didn't want to do personal stuff while at work. This is exactly how Facebook did it years ago - they didn't have usernames in the beginning, but announced at what date and time they will open it up to the world. But you didn't have to invest a new identity - you could've used Goodreads or X.com or another one common among your customers. Also, you reserve usernames in high demand and you create some automated granting process - the more social media accounts with that username you link, the higher weight in the claiming process you get, and so on.
But the best approach is not to launch a service with usernames - you gain NOTHING. In fact, you can only piss people off! You launch the service, you allow users to link other social identities and you then decide what to do.