MySQL hangs in killed state
From http://www.dbasquare.com/2012/05/15/why-do-threads-sometimes-stay-in-killed-state-in-mysql/:


  What actually happens when you run KILL?
  
  The command sytnax is KILL [QUERY | CONNECTION] , where
  thread_id is the value from the first column of the process list
  output. The optional argument determines whether only running query or
  should the entire session be terminated. It defaults to the latter, so
  specifying CONNECTION is not required.
  
  Running the command doesn’t actually do anything except for setting a special flag inside the selected thread. Therefore the kill
  operation doesn’t happen synchronously with the corresponding request.
  In many cases it takes some time for a thread or a query to stop. The
  flag is checked at various stages of statement execution. When it
  happens exactly, or how frequently, depends on the work a thread is
  actually doing.


...


  No matter what the real cause is, it is impossible to get rid of
  such hanging threads without a database restart. They should,
  however, simply be allowed to go away on their own. 
  
  There is also no way of forcing a kill that would execute instantly like kill -9  in Unix systems.