Actually, packet marking to indicate congestion is not the novelty here, this has been employed (without much success) in IP for a long time. The novelty is how to respond to those marks and how often to set them.
Traditional TCP congestion control deals with an ECN marked packet similarly to a dropped packet, and it drastically reduces its congestion window, drastically reducing transmission speed. For this reason, ECN bits are traditionally marked only when the network is really congested. In this approach, ECN is not much different than a dropped packet, and its improvement is marginal: it avoids some retransmisions, but performance drops significantly when the network is close to congestion.
The approach in L4S is to mark packets more frequently, and let the transport protocol (TCP, QUIC, etc) adapt smoothly to the proportion of received packets with ECN bits set. It is clearly explained in RFC 9331. This idea borrows from DataCenter TCP, which pioneered the approach in 2011 or so.