In GeoTiff only the raw data is stored which is uint16 for S2 data. Unfortunately, there is no standard to specify scaling factors in GeoTiff.
You can create new bands based on original ones by using the Band Maths.
This will apply the scaling factor and convert the data type to float32.
Make sure to uncheck the Virtual option.
Afterwards you can delete the original bands.
When you now save the data to GeoTiff the data is scaled.
This is annoying work in the GUI for many products. But you can you gpt to do this on a set of products.
Or you use an alternative file format like Netcdf4.
Marco from EOMasters - Mastering Earth Observation