Да, на самом деле это ожидаемое поведение.
Основная цель ask - создать фиктивный ActorRef, который не использует столько ресурсов, сколько полностью укомплектованный актер, чтобы выступать в роли отправителя, на которого вы можете ответить.
Оборачивает обещание, которое завершается только при получении сообщения и возвращении будущего из функции ask.
Итак, хотя вы технически запрашиваете у Actor1, отправитель () в Actor2 будет фиктивным PromiseActor, который создает запрос, поэтому вы не получаете Message2 от Actor2.