Yes, that is how it works in real Akka too if you use onComplete for the akka futures, since those will run completely async from the receive func.
But I do buy your arguments, it's conceptually wrong to do it the old way too.

Blocking waits will ofcourse solve this, but even the akka team recomends againt using blocking asks since it doesnt scale.

I guess its better to be right and slow than scalable and wrong so to say, so lets use your patch. but it would be nice to be able to actually do true async await for ask.

We can't observe from the outside in any way if there is a blocking wait, right?
I'm thinking if CompleteFuture could be passed to some separate queue on the mailbox and be completed before anything else, and prevent the mailbox from running before that is done.

Just throwing ideas here :=)