(Just some notes in case it is useful/interesting to anyone).
Here's how we've decided to handle it (this is probably quite specific to our needs and is certainly not the material for an Internet Draft!):
0) all apps should now include a "correlation ID" in their log messages when known
1) when any app consumes an API, the correlation ID should be passed within the request header "correlationId"
2) apps that handle top-level domain actions (e.g. incoming user clicks, daemon initiated process, app startup, etc.) should generate a new correlation ID as the first step in processing such actions
3) apps that produce an API should use the correlation ID from the incoming request, but if not found should:
a) generate a new correlation ID locally
b) log a message saying that a new correlation ID was created since missing from the request
c) henceforth use the newly generated correlation ID as if it had been passed in (e.g., include it in log messages)
4) Correlation IDs should be generated as a randomly generated integer