// WaitForAvailable периодически проверяет состояние окружения, пока оно не станет доступным.
// Если окружение становится доступным, функция возвращает nil.
// Если достигнуто максимальное количество попыток, функция возвращает ошибку.
//
// Через необязательные параметры можно, например, настроить задержку между попытками (по умолчанию равную RetryDelay) и максимальное количество попыток (по умолчанию равное RetryAttempts),
// но опции retry.Context и retry.RetryIf будут проигнорированы.