Эта страница объясняет механику. Читать её, чтобы начать работать, не обязательно — но когда open отвечает sessions_busy или занимает пять секунд, здесь написано, почему.

Что происходит по шагам

1

Проверяется ключ и место в пуле

Сперва считаются живые сессии. Их потолок — четыре на весь сервис, и если все заняты, дальше дело не идёт: приходит sessions_busy с кодом 503 и заголовком Retry-After. Ни браузер, ни профиль на этом шаге ещё не трогаются, поэтому отказ приходит быстро и ничего не стоит.
2

Берётся слот пула — вкладка настоящего Chrome

Слот — это запущенный браузер с закреплённым за ним адресом выхода. Он берётся из общего пула с меткой browser и выходит из него на всё время жизни сессии: пока вы работаете, запросы Search и Fetch на этот профиль не попадут.Это и есть главная причина, по которой Browser дороже Fetch. Fetch отдаёт слот через секунды, сессия держит его минутами.
3

Открывается пустая вкладка

Сначала about:blank, а не ваш адрес. Пустая вкладка нужна, чтобы настроить эмуляцию до того, как страница увидит браузер: подменять устройство и язык после загрузки поздно — скрипты уже отработали.Не удалось открыть вкладку — приходит browser_busy, 503.
4

Применяется эмуляция

По параметрам device, gl и hl выставляются размер экрана, User-Agent, язык интерфейса и часовой пояс. Адрес выхода уже выбран вместе со слотом и соответствует стране из gl.
5

Загружается ваша страница

Навигация идёт под таймаутом. Не уложилась или сорвалась — сессия тут же закрывается, а вам приходит navigation_failed с кодом 502 и текстом самого браузера.
6

Ожидание догрузки

После навигации ждём, пока страница успокоится: состояние документа, сетевые записи и изменения DOM разом. Итог приходит в поле settled — подробно об этом в разделе Догрузка страницы.
7

Сборка ответа

Со страницы снимается то, что заказано в include: кнопки, поля, текст, разметка. Каждому элементу проставляется метка ref, по которой вы будете к нему обращаться.Сорвалась сборка — сессия снова закрывается здесь же. Идентификатора вы ещё не получили, закрыть её вам было бы нечем, и до уборщика она держала бы профиль и вкладку впустую.
Только после этого в ответе появляется session_id. С этого момента вкладка ваша и ждёт следующего шага.
Всё, что описано выше, — один вызов open. Отдельной ручки «инициализировать» нет намеренно: сессия без открытой страницы бесполезна, а держать её в таком виде значило бы занимать слот пула ни за чем.

Чем следующие шаги отличаются от первого

click и fill не заводят ничего заново: слот, профиль, адрес выхода и куки уже на месте. Шаг — это действие, ожидание догрузки и новая сборка списка элементов. Поэтому он и стоит в три раза дешевле open.

Что живёт между вызовами

Куки и хранилище

Всё, что сайт записал за время сессии, остаётся до её закрытия.

История вкладки

Переходы копятся в той же вкладке — сайт видит обычное поведение, а не серию заходов с нуля.

Адрес выхода

Один и тот же на всю сессию. Смена IP посреди формы — верный способ получить проверку.

Профиль браузера

Отпечаток не меняется между шагами: тот же экран, тот же язык, те же шрифты.

Сколько это занимает

open — это навигация плюс ожидание догрузки, то есть обычно 2–8 секунд и дольше на тяжёлых страницах. click и fill быстрее: навигации в них может не быть вовсе. Ставьте клиентский таймаут не меньше 180 секунд. Библиотеки для Python и Node делают это сами.
Заводить сессию «про запас» не нужно. Пока она открыта, слот пула занят, а простой в 60 секунд закроет её раньше, чем вы успеете ей воспользоваться.