Solution:1
In case someone stumbles on this, Woocommerce changed the name of the state fields. Below is the updated solution:
add_filter( 'woocommerce_checkout_fields','custom_override_default_address_fields' );
function custom_override_default_address_fields($fields){
global $woocommerce;
$country = $woocommerce->customer->get_country();
if($country !== 'US'){
$fields['billing']['billing_state']['required'] = false;
$fields['shipping']['shipping_state']['required'] = false;
}
return $fields;
}