Cómo manejar mejor los campos personalizados, valores predeterminados y los registros de configuración de categorías

Sí, esto es complicado. Supongo que la mayoría de los complementos no se encuentran con esto porque su ‘valor predeterminado’ para la configuración de categoría es un valor nulo.

¿Tenías alguna idea para un cambio en la API principal que pudiera ayudar a mejorar la situación?

Totalmente sin probar, pero creo que podríamos lograr algo ahora mismo utilizando un campo de entrada HTML sin procesar (nota la minúscula input en lugar del componente \u003cInput de doble enlace de Ember).

<input
  value={{or category.custom_fields.my_field "valor predeterminado"}}
  {{on "change" this.updateMyFieldValue}}
/>

Con esa estrategia, tenemos control sobre cómo se leen/escriben los valores en la instancia del modelo. Por lo tanto, si un valor se establece en el valor predeterminado en la interfaz de usuario, podemos escribirlo como ‘nulo’ en los campos personalizados:

@action
updateMyFieldValue(event){
  let newValue = event.target.value;
  if(newValue === "valor predeterminado"){
    newValue = null;
  }

  this.category.set("custom_fields.my_field", newValue);
}

(y luego eliminarías la configuración del valor predeterminado que describiste en (1) del OP)