In my years of being a UNIX system admin I've encoutered so much of these hanged unkillable preocesses even and have always wondered why.
Found some explanation UNIX Power Tools book by O'Reilly about it, here goes:
You or another user might have a process that (according to ps ) has been sleeping for several days, waiting for input. If you can't kill the process, even with kill -9, there may be a bug or some other problem.
These processes can be unkillable because they've made a request for a hardware device or network resource. Unix has put them to sleep at a very high priority and the event that they are waiting on hasn't happened (because of a network problem, for example). This causes all other signals to be held until the hardware event occurs. The signal sent by kill doesn't do any good.
If the problem is with a terminal and you can get to the back of the terminal or the back of the computer, try unplugging the line from the port. Also, try typing CTRL-q on the keyboard — if the user typed CTRL-s while getting a lot of output, this may free the process.
Ask your vendor if there's a special command to reset the device driver. If there isn't, you may have to reboot the computer.