Basically, if the SPID is sleeping, it's not doing anything. As I mentioned, it may be waiting for the caller to submit another command or waiting to acquire a lock. I would not be surprised to see sleeping processes. Remember that OLEDB connection pooling is going to keep some alive until they either timeout of the pool or are reused by another caller.
If you're curious about thread allocation, it's discussed under the topic SQL Server Task Scheduling in the BOL.
-Mike