По сложившейся здесь традиции, сам же на свой вопрос и отвечаю.
Чтобы CORS отработал нормально, нужно
1) corsFilter в behaviors должен быть на самом верху;
2) убедитесь что в нем разрешено всё, что вам необходимо, в т. ч. заголовки, которые вы шлёте серверу;
3) в actions нужно добавить:
'options' => [
'class' => \yii\rest\OptionsAction::class,
],
4) checkAccess в экшне options не должен фигурировать, этот эндпойнт должен быть доступен всегда;
5) если в конфигурации задается специальный маршрут посредством UrlRule с verb'ами, то в verb нужно обязательно добавить OPTIONS.