From what I've read, the main issues were simply so many people trying to sign up at one time. Account creation. Basically, one time spikes. That's why there was no point in delaying expansion. Get all the sign up spikes out of the way, so you don't have to deal with them over a longer period.
I'm pretty sure account creation is neither the main problem nor especially taxing to the game's servers.
There's two ways to sign up/in, one is with an existing Pokémon Trainers Club account (and I don't actually know anything more about those as I didn't take that route), and the other, presented first, is a standard Google account, like you'd use with GMail and such - I'm pretty sure the majority of people who would play his game already had those. Ingress, their other game, only uses Google accounts, so I suspect the second login method was a requirement given to them by the Pokémon company. There were clearly problems with a ton of new people wanting to get Pokémon Trainers Club accounts (whether because they thought it sounded cooler or offered some advantage or maybe just nostalgia), and Pokémon Company International (which owns the Pokémon IP rights and handles the TV shows and trading cards and such, and is quite separate from Niantic, who developed the game) were totally unprepared to handle this influx of traffic. Signing up/signing in with a google account was never especially a problem.
But once you are authenticated and in the game... just like Niantic's previous game, Ingress (which also overlays a game world with special locations - the same ones in fact - on a real-world map), the game has to keep constant track of what everyone in the game is doing in real time. Not which exact square of sidewalk you're standing on, but certainly which city block you're in, and all the updated game data for the surrounding area. Any interaction you have with any PokéStop or Gym has to be uploaded right away to update your inventory and the Gym's status. Any time you catch a new Pokémon, that has to be updated to the server right away (keep in mind you could at any time turn your phone off without specifically logging out and then log in on a different device, and you wouldn't want your inventory to be out of sync, or some newly captured Pokémon to go missing). It has to keep a constantly updated map of what Pokémons are available
right now in your local area, so when those friends run up and say they caught a Charizard or whatever by that tree over there, it'll be there for you too (funny, I was hanging out in a park at midnight last week, with fifteen other players, and within a span of a few seconds, a collective gasp and yell, of "CHARIZARD!!!" went up from the entire group - that is damn good synchronization on the server's part). The server needs to keep a constantly updated cache on your phone of your inventory (gear and critters), your location, nearby map data, nearby critter data, cooldown timer for every nearby PokéStop, affiliation, strength and critter inventory for every nearby Gym, countdown timers for every special item you've recently used (lucky eggs and such). Anyway, it's a lot of data, and it needs to be kept constantly up-to-date, between you and the server, and they need to ensure everyone nearby has properly synchronized data for shared resources (if you see the Gym is Red level 3, and your friend sees it as Blue level 2, that's a problem). So, when you're playing, your phone is in contact with the servers
at least several times a minute (one of the reasons the game eats battery).
Now, I recall reading before the game was released, Niantic was thinking they might get as many as ten million players eventually. They got well over twenty million the first week. All in constant contact with the servers (not just for account creation, but all the constant data traffic and database updating described above) whenever they're out playing. That is why the servers fell over, and continued to fall over, off and on, for the first week or so. Not merely account creation.