Are you saying that you need two types of Design Nodes and that is why you need to create the custom one?
The default design node is highly customizable. If you only need one, then I am unclear about what flow you want to create and why it would not work with the default design node.
Instead of creating a whole new node type for a different workflow you could always leverage the existing design type (Process.MM_WMS_DESIGN_TYPE) to set up different workflows. You would need to build your own custom subtask that would check the design type (MM_WMS_DESIGN.design_type_id or IMMWMSDesign.PropertySet "DESIGN_TYPE_ID"). You could then have the subtask return true for its Enabled property for the design type you want the assigned task to show up on. So you could have an Electric type design have an extra workflow state that requires special approval from a different supervisor, etc. than a Gas type design. All by having this subtask that checks the design type assigned to all the different tasks so that Electric designs only show one set of tasks and transition tasks vs Gas designs that would see a whole other set of tasks and transition tasks giving them two separate workflows. You could even create another subtask that sets the design type like "Set design type" and it has a parameter called "type" that you could apply this subtask to tasks like "Create Electric Design" that would set "Electric" in the type param and another task "Create Gas Design" that would set "Gas" in the type param. Then you could give users Px roles like "Electric designer" and "gas designer" so that gas designers can only see the "Create Gas Design" task. So when they execute that they will create a design and it has that subtask that will set the type to "Gas". So from then on, that design will only show the appropriate tasks and transition tasks based on its type.
Doing it this way will let you keep the default Design node type around so you can leverage all of the other existing ArcFM API like IMMWMSDesign, etc.
Correct me if I'm wrong, but I think if you create a new, custom node type you have to implement a whole lot more custom code like a custom deleter object, custom create subtask, and create a new table in the database to hold its information (similar to MM_WMS_DESIGN).