Creating individual A records for each account is one method. I worry about the propagation possibly being delayed.
In my zend application when users register they are asked to choose a user name, that name becomes their sub-domain name where they login. username.myapp.com The username is placed into a file /etc/nginx/subdomains
There is a perl script in the Nginx conf folder that reads the list of subdomains from the file and enters them as server names or aliases I forget which. Nginx is then reloaded with nginx -s reload
this reloads the configuration files only, nginx (the web server) never goes down. So before the users even get to activating their email address and logging in their sub-domain is ready without having to use DNS records.
The application does validation when a user logs in at their domain it checks they are logging into their assigned sub-domain.
With this if people enter a sub-domain that doesn't exist they see a custom 404. Similar to if you go to http://asdfasdfasdfasdfa.zendesk.com/
If my application ends up with 100,000 users I rather not have to worry about 100,000 A records and simply work off a local database and file to manage the sub-domains.