@Davaadulam Davaakhuu Have you tried to set the following property too with the speech config?
speechConfig.SetProperty(PropertyId.SpeechServiceConnection_InitialSilenceTimeoutMs, "45000");
This thread from the speech SDK repo details the different scenarios of timeout for silence. Segmentation timeout and max segmentation timeout are couple of other timeouts that are not exposed with the SDK and if they are reached with RecognizeOnceAsync then I think such behavior could occur. It also depends on the quality of audio but since the speech studio is able to recognize I think this could be an issue with SDK or setting the above property could help.