Unfortunately, at Intalio 5.2 Beta, the "end no flight" compensation end event is flagged as an error "The compensation activity can only be used in an exception flow". I modified the original further, putting the test for success in booking the flight into the subprocess Book Air. This seems a reasonable view of the real life business situation as well.
That does the compensation cancel Hotel on failure of sub-process Book Air, BUT the process fails and the Confirmation task is not executed! Fair enough, there is no handling specified for failure ( I was limiting the changes made to locate the thing that was stopping the compensation). Now add a failure handler on the outer sub-process. I was glad I had one of those, because Intalio does not allow you to put a subprocess around existing elements and I would have had to start again!
[Update: This relates to a post on the Intalio forum]