The time line is a little more compressed. I'm somewhat sympathetic. But my heavens, that using the language's official module system is a pain & difficult makes me think we needed to switch harder earlier.
(Also Node simply lacked the courage to try to do what many before them had done, & make cjs/ESM intercompatible: worked great in @std-things/esm but node let themselves get steered into prissily rejecting an obviously fine path for absurd technical minutia).
We gasp & moan the whole time old soggy gross bandaids are being ripped off. We direly need to call shots & make it happen. We need the will.