The event algorithms use EventsHandler attribute names (such as onvalidationstatuschange) instead of actual event types (such as validationstatuschange). In other words:
Initialize event with type "onvalidationstatuschange"
... should rather be:
Initialize event with type "validationstatuschange"
Same thing for "promptaction" and "promptdismiss".
In practice, it may be slightly easier to define the algorithms using fire an event rather than dispatch, which is slightly lower level. For example, "Dispatch onpromptaction on this" could be re-written as "Fire an event named promptaction at this with its bubbles and cancelable attributes initialized to true". You may still define a custom "Fire a promptaction event" algorithm to avoid repeating the bubbles and cancelable attributes initialization bits.