I had to specify the UpdateSourceTrigger property. The Text property defaults to LostFocus, so when I changed to it PropertyChanged, it works as expected.
<TextBox x:Name="MultistageCountValue"
Text="{Binding MultistageCount, UpdateSourceTrigger=PropertyChanged}"
PreviewTextInput="NumericTextBox_PreviewTextInput"
TextChanged="MultistageCountValue_TextChanged"/>