I'm seeing the same behaviour with SBCL (on Windows). The problem seems to be the client is sending the Keep-Alive header, which hunchentoot honours by keeping the worker-thread running after the request has been processed. It sits idle awaiting further input but unfortunately it seems that the socket never times out and the thread never gets terminated so I very rapidly hit a non-functioning server. This seems to be a Windows-specific problem because the same code works fine under (Ubuntu) Linux.
@Paralife you can pause a thread and check its call stack with
(bt:interrupt-thread thread #'break)
You can get the thread you want using (bt:all-threads).