maybe your process does something like this
https://en.wikipedia.org/wiki/Sleep_...ruptible_sleep
in that case kill works correct, but the process waits for some resource before it cares about that.
it might also be the case that the process is within a systemcall where kernel says that it will not kill it during that system call, but the process stuck in there, than it cant take until some timeout, or forever (implementation detail), until the kill signal is executed
in this case you can kill the parent process, this might clean up the non reacting process,
or result in a zombi
if the process is a zombi, kill will also not work, simply because how to kill an already dead?
but, based on your discription, I think you have a classical uninterruptible sleeping process, so kill the parent process