Fix FSDPPrecision rejecting a scaler for 16-mixed precision (#21831)
The scaler guard read self.precision before it was assigned, so it saw the base
class default 32-true and raised for a 16-mixed scaler; the else branch also
dropped a user-provided scaler. Use the local precision argument in the guard and
keep the scaler.