xinit tries to use :0 every time.
I tried to start a second X server on my system, using startx, and it failed saying that Server :0 was already running. This is true, but there were may other available integeres.
I tracked down the issue to xinit, and created the following patch, which works for me.