How do I determine why my stored procedure is getting deadlocked?
I think "deadlocked" is the wrong term in this case.  Your query was getting blocked.  Deadlocked means that it is blocked by another process that is in turn blocked, waiting for your original process to complete.  Since these two processes will never complete, one of them is chosen to the victim of a deadlock, and it is terminated, allowing the other one to continue.