Define and Explain DOM Custom Events
A custom event adds additional data to an event object. A developer can create a new event type to process additional data if none of the standard event code is meeting their needs.
How to Create Custom Events
A custom event is created using the event or customEvent constructor. The custom event is often used with the addEventListener() and element.dispatchEvent(name) methods to carry out the method.
Explain Why DOM Custom Events Are Used
DOM custom events are often used to provide more data to an event object. Some sources about this topic are vague about the reasoning for why DOM custom events are used, but the ones that list reasoning indicate that providing more data is the primary reason.
Summary
DOM custom events are created using the Event or customEvent constructor and is used to hold additional data. Based on my research, it appears that the use DOM custom events is not nearly as popular as other more standard events. The option seems to exist in case a developer really needs it, but there's not very many sources about the topic compared to other DOM and Javascript topics.