Hello,
Welcome to Microsoft Q&A.
This behavior is determined by the nature of Grid. Auto means that the column width is determined by the internal elements, and * means occupy the remaining space.
So when a longer text is in a column which width is Auto, it will "overflow", and because there is no remaining space, the column which width is * will not be displayed.
If you want to avoid this, you need to set MaxWidth. It can be set on TextBlock or ColumnDefinition, like:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition MaxWidth="300"/>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock TextTrimming="CharacterEllipsis" TextWrapping="Wrap">
<Run Text="This could be a lot of text blahb lahblakdjfalkdfj aldkfj adfkj asdlfkajdlfkamjsdlfkaj dsflkajd flakdjflakdfjaldkjf aldkjf alkdjflakdjflakdjf aldkfj asdfk jasdfk jsflka jsdfas end of maybe a lot of text." />
</TextBlock>
<TextBlock Grid.Column="1" Foreground="Yellow">
<Run Text="This needs to immediately follow but be fully visible." />
</TextBlock>
</Grid>
Setting TextWrapping=True can make the TextBlock wrap when reaching the maximum width to ensure the display of the text.
Thanks.