You can try to provide the context for a fallback as 3rd parameter:
public EntityRepositoryInterface::getTranslationFromContext(EntityInterface $entity, $langcode = NULL, $context = array())
Here is the documentation, but it is not documented, what the content of the array is exactly:
getTranslationFromContext
I would code the fallback myself and take control, how this is handled exactly, if the node is not fully translated:
$val = \Drupal::service('entity.repository')->getTranslationFromContext($node)->field_my_awesome_field->value;
if (empty($val)) {
// $node has no translation with the default node language
// get the default from somewhere else (domain, user ...) and try again
$val = $node->getTranslation($defaultlanguage)->field_my_awesome_field->value;
}
if (empty($val)) {
// someone needs to translate this node, in the meantime get the original value
$val = $node->field_my_awesome_field->value;
}
You can adjust the code to your needs, you can add as many fallbacks as you like or go directly to the last if-statement to load the original field value.
One remark: If your multilingual site is setup correctly, this should not happen. The fallback is there, when something goes wrong. For example, if you configure a field as translatable, but when translating the node, you leave only this field blank. Then drupal does not know, is this intentionally, should it be blank or do you want to load the field from another language?