Depending on the system, it can be random. I believe they are both started with the same loop in the code, so startup of each is only microseconds apart. Whichever is listed first would be the first one started.. but with the system scheduling overhead, it would become nearly random as to which one actually gets any work done.
Because the shell/bash has much much lower overhead, it will always be ready first.
The GUI login requires the X server to be started. agetty doesn't require anything...