Why select holds exclusive lock on table?
There are data modification statements within the same transaction.

indexname = "IX_Batch_BatchGroupId_Status"
id = "lock2aa71e32d80"
mode = "X"
associatedObjectId = "72057594166968320"

Exclusive locks associated with those data modifications will be held until the transaction is complete.

See the Deadlock Troubleshooting posts by Bart Duncan.