Switched the TransactionInitPriorityQueue's underlying data structure to be a PriorityQueue, and then wrapped all of the operations internally with our own ReentrantLock.
Worked through the locking logic a bit more in the TranasctionInitPriorityQueue. Fixed a livelock issue.
We forgot that we need to abort a txn if the TransactionInitResponse comes back with an OK status.