A popular problem with /sbin/init is, that some (at least) current distributions come with /sbin/init dynamically linked. So you have to provide a correct /lib setup to the client. One easy thing one could try is replacing /sbin/init (for the client) with a statically linked « Hello World » program. This way you know if it is something more basic, or « just » a problem with dynamic linking.
5.2 /dev troubles.
If you get some garbled messages about ttys when booting, then you should run a MAKEDEV from the client in the /dev directory. There are rumors that this doesn’t work with certain server oses which use 64-bit dev numbers, should you run into this, please mail me with which os you have the troubles. A potential solution would be to create a small /dev ram disc early in the boot process, and reinstall the device nodes each time.