I recently had a rather nasty bout with some stickiness. One of the query servers was not communicating properly for some reason. Even after a restart, our full crawl would stop almost immediately (when it tried to propagate). The last message it would show was "the query server xxxxxx is not responding." xxxxxx was one of my web front ends and which also is a query server. As I said, the restart (small hammer) of that server did not help.
The BIG hammer I used to pound this out was to go into Central Admin and remove the search query service from this server and then re-add it. Ultimately, this got us past this bump.
Along the way, I was finding the full crawl stuck, and it would not respond to a stop command. The crowbar I used to get this done was to restart the Office Search service on the indexing server.
It pains me to do these things!