Random thought - doesn't S3 have a leasing/locking system that could be used for distributed locks?
Any reason Azure Blob Storage couldn't be used as a no-setup, managed, cheap way to acquire distributed locks?
if you look at azure event hub library they use blob as lock to partition the consumer instances at runtime.