SYMPTOM
Service Bus messages reprocessed: lock lost before complete

CAUSE
The message lock expired before the handler finished, so the broker redelivered. Looks like duplicate delivery; the cause is slow processing relative to lock duration, or a crashed handler that never settled.

CONFIRM IT
CONFIRM: receiver logs show the same message-id delivered twice; the second delivery has a higher delivery-count. Lock duration on the queue vs handler p99 latency: if p99 > lock duration, this is it.

FIX
FIX: options in order: make the handler faster or split the work; raise the queue lock duration (max 5 minutes); use `renew_message_lock` in long handlers; ensure every path settles (complete/abandon/dead-letter) even on exception. Make the handler idempotent regardless - at-least-once is the contract.

VERIFY
VERIFY: delivery-count stays 1 per message in steady state; dead-letter queue stops growing.