If startup() fails, because you already have a server on the supplied port, for example, it seemingly hangs forever and prevents the rest of the code from executing. If I'm not mistaken, it used to return "[IP]:0" if it failed. Not 100% sure when this started though, it may have been when the -close parameter was implemented.
Also, startup() either starts new servers in whatever visibility mode the parent is set to, or to whatever the last DD instance was (not 100% sure which). This is understandable, but I think it would be better to always start new worlds in public mode. Or possibly, take a parameter for that setting, like it does for the safety mode.