That field is there so that you can have the scene loading wait on some third party things finish loading before the scene is “allowed to activate”. Loading will always pause at 90% when allowSceneActivation is set to false. Its what the documentation says.
also using == operator on a float is subject to floating error, and likely why its still not working for you. Use “Mathf.Approximately(async.progress,0.9f)” (which interestingly enough actually has memory allocation in the profiler), or use “EqualityComparer.Default.Equals(async.progress,0.9f)”, or use “if(async.progress >= 0.9f- float.epsilon)”.
If you want to artificially slow it down, you could not set the allow activation to true, break out of the first loop, and do a few yields and advance the fillAmount in between. Allow the scene’s activation after some time you like. Maybe?