I believe the key difference in practice is that trace channels are used for interaction between user and object, where object types are mainly to do with collision between objects in the physics space?
I have personally never found a use for custom object type.