You can set caps lock as escape key in System Preferences since one of the last OS versions. For me this works even better than the original escape key position since it’s on the home row.
This is what I do for my work computer but it makes memory muscle when switching machines super annoying. Give us back real keys on the top row. And if Apple really wants to be trendy with dynamic keys then make the top row physical buttons that are each their own displays so we truly get a usable, yet capably dynamic, top row. That would be innovation and not stifle those who rely on those physical keys to work proficiently.
I don't know if it's possible with third party software (I use a hardware programmable keyboard running QMK), but I map it to tap for escape, hold for ctrl. If you use vim keybindings for your editor it's glorious.
Yes Karabiner is great for that. I do the same thing except I have it act as Hyper when pressed in conjunction with another key. That's how all my shortcuts are triggered.