Testfilght build are used for two purposes -
1: Internal/External Testing
2: Apple Store Build.
Once you have released the Test Flight build with version 1.0.2 or 1.0.3 to Apple Store then you are not allowed to upload the next build in same series into TestFlight. Which means your next TestFlight release will be in series of 2 (2.0.0 or 2.0.1).
In your case you can create a Test Flight version 2.0.1 and then create Apple Store version 1.0.4. After this Connect the Apple Store version(1.0.4) with the Hotfix Testflight version(2.0.1) and review/release the App.
So in App Store the build version will always show 1.0.4 but internally it will be 2.0.1 (which can be used for other coding purposes like for Firebase Remoteconfig etc)