There is some room for improvement, but it's not too high on the priority list
Currently, MCServer sends all (19x19) of the client's chunks and only then allows the player to spawn. I think the Java server sends only 9x9 chunks around the player, then it spawns the player and keeps sending the rest of the chunks. We could do the same - spawn the player as soon as the 9x9 chunks are sent.
This slowdown is visible the most if your network connection between the client and the server is rather slow.
Another thing that may have been a factor in your test is that MCServer generates a 19x19 chunk spawn area, then places a spawn point somewhere in that area. This means that when the first player logs in, the server may need to generate up to 10x19 for that client. If you login for the second time, the login time should be shorter.
This slowdown is visible the most if your network connection between the client and the server is fast, but the server is on a slower (CPU-wise) machine.