No, it won't be an engine bug.
Uncommitted transaction most likely. Exclusive locks are held until the transaction commits. Look at the open transactions, and make sure that you commit/rollback any transactions that are started.
Edit: And yes, if it is waiting for locks, it's not the head blocker. The head blocker will be running, runnable or waiting for something that's not a lock.
Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)
SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability
We walk in the dark places no others will enter
We stand on the bridge and no one may pass