CSS Transitions Level 2 defines the transitionstart event as being fired "when a transition is started (i.e., when it is added to the set of running transitions)".
However, Edge is already shipping a transitionstart event that fires at the end of the delay as demonstrated in this fiddle: https://jsfiddle.net/jph4eo2o/
Making transitionstart fire at the end of the delay is consistent with animationstart. However, it is less useful for authors who want to determine whether a given style change triggered the creation of a new transition or not (e.g. so they know if they should wait for transitionend events before considering the element to be in a stable state).
Perhaps we need a separate event for when a transition is created, transitionfire or something of the sort?