- ContentBasedDeduplication=true: dedupId computed from body SHA-256 when not provided
- do NOT drop dedupId on message delete: AWS keeps the 5-minute window regardless
(previously re-send after delete delivered the message again)
- utils: GetSHA256Hash