As it was revealed on chat, the actual problem lied in /etc/hosts not set up to recognize the local hostname. On some systems, including FreeBSD, the Xorg will halt trying to query the hostname of your machine before it becomes usable. So before starting X, one should ensure that the /etc/hosts file contains at least the line
127.0.0.1 localhost your_hostname_here localhost.my.domain
That is, the line has to contain the hostname.
Also, when you have such problems it might be a good idea to start an ssh daemon before running Xorg - then if you cannot do anything under X, you'll be able to log to your computer from another machine (if you have one at hand) and kill the Xorg. It will prevent the risk of data corruption on hard-reset and also spare you some time.
/var/log/Xorg.0.log? It may contain information about the problems with your keyboard. – rozcietrzewiacz Aug 27 '11 at 23:01