Checking if a context property exists - the proper way
Following through Richard Seroter's useful post I read through the list of the expression shape's allowed operations when I spotted exists
Using this operatoins one can use an expression such as "BTS.RetryCount exists Message_In" to check for the existence of a context property in the message.
This does allow us to have that if instead of a try catch.
I still find it strange that there's an inconsistency between the behaviour in the orchestration and the XLNGMessage's GetPropertyValue, but I can't really complain now that I know there is a good solution.