Input.location.Start() freezes our app for 1+ minute

We use location services in our app and so at start we call:

Input.location.Start(1, 1);

This is done in a function that we create with StartCoroutine().

However, this causes the app to freeze/lock up completely for 1+ minute.

Does anyone know how to do it in a way that it does not block the main thread?

Thanks,
–Mike

Yes, this is what my code is doing.

I have maxWait set to 15 seconds but the whole device locks up for over a minute before coming alive again with success.

Input.location.Start(1, 1);
Input.compass.enabled = true;

// Wait no more than 15 seconds.
int maxWait = 15;

// Wait until service initializes
while (Input.location.status == LocationServiceStatus.Initializing && maxWait > 0)
{
    yield return new WaitForSeconds(1);
    maxWait--;
}