In other words:

Message0 kicked off an Ask operation
Message1 is the next message in the Actor's mailbox
Message2 is a `CompleteFuture` message that completes the Ask operation started by Message0

With your current code sample, my understanding is that the Actor awaits out of the OnReceive method and waits on a task. Meanwhile it processes `Message1` and updates its state.

`Message2` arrives and completes the future, and then the Actor tries to complete the rest of its message processing (if any) for `Message0`. However, the Actor's `Sender` and any user-defined state are now different because `Message1` was processed during await, and it can't complete the rest of its processing for `Message0`.

Does that sound right?