Perhaps I am missing something, but there seems to be an inconsistency with regard to the ImmediateRetryMessage, DelayedRetryMessage, and FailedMessage when it comes to faults. Specifically, the MessageId is missing from DelayedRetryMessage but is present in the other two. Yes I can pull it from the headers, but it is inconsistent and I have to account for to methods of reporting explicitly which message was effected when I do some logging and send exception notifications to the support team.
In short is there a reason this is excluded from DelayedRetryMessage.