For testing, I made cat put itself into a new process group. This should eventually be done by sh between fork() and exec().
We now make three VirtualConsoles at boot: tty0, tty1, and tty2. We launch an instance of /bin/sh in each one. You switch between them with Alt+1/2/3 How very very cool :^)
This is a mess right now, but I'd rather commit as I go.