Sure, will add more info.

The remoteMessageCompleted is here just for delimiting the scope of trace contexts - then a tracer can clear/restore something like a thread-local context. So on remoteMessageReceived the context can be stored in a thread-local, picked up again when the local actorTold happens, and then cleared in remoteMessageCompleted. If we passed on the trace context directly from remote message received, then this could be different.