Used the JS debugger to figure the error was coming from here: https://github.com/magento/magento2/blob/2.3.5-p2/app/code/Magento/Checkout/view/frontend/web/js/view/shipping.js#L340
On that line, the code looks for region in the shippingAddress observable but when saving a new address for a not logged in user, in this case Magento is not setting the "region" property on the shippingAddress object, instead only regionId is set since the name of the region dropdown field for US is regionId.
As a workaround on line 212 of shipping.js I would add:
var regionSelector = '#co-shipping-form select[name=region_id] option:selected';
if (addressData['region_id'] == $(regionSelector).val()) {
addressData['region'] = $(regionSelector).text();
}
This is not the perfect framework fix, but should be safe enough for anyone looking to resolve this important checkout issue.