Due to the extensive use of .Wait() and .Result in Transaction.cs, I am encountering deadlocks. The methods — Receive, AckMessage, RejectMessage, ExtendVisibility, Resend, and Modify — are currently implemented as "Sync over Async." They should all be asynchronous and return a Task.