I run into this quite a bit. If you just send a SIGTERM to the process(es) you will have to wait for threads to close (this happens quite often on the uptime server). It can sometimes take a while for a scheduled proc or thread to die.
sending a SIGKILL will get rid of a "stuck" process but you should see why that process is stuck.