Given how infrequent uplinks are, a node that is awake for two second rather than one isn’t really burning that much more power - from profiling it, the processor awake typically isn’t that huge compared to the energy to transmit and receive.
But developers who are seriously concerned about power usage sleep until the RX window. It’s really not that hard to do, you just have to actually understand what is going on in your node.
This is only one of many aspects of the lack of any “gateway capabilities” interchange. Eg, “gateway is receive only” etc.
I suspect in practice there’s some correlation to the change in UDP protocol format, though the commit history is opaque enough that figuring out exact sequence of changes is more than a few click away.
Anyway, the upshot is the mobile backhaul works pretty well on private networks designed around the idea of using it and sees widespread usage since it’s often the only thing readily available on sites where it would be nice to put a gateway; if it’s not working on TTN (and there’s no actual proof it’s to blame for the asker’s issues in this case), that’s a result of less than optimal design decisions.