Hi Wolfgang,
sorry, but I can´t agree / maybe I didn`t understand you.
In real world use cases deep sleep seems to be a must-have. We typically use battery driven nodes where power consumption is a very big issue. Every µA we can save is important. Maybe you might look at Full Arduino Mini LoraWAN and 1.3uA Sleep Mode for example.
As far as I understood the best place to do deep sleep in a sketch is at the end of the EV_TXCOMPLETE event. Here all the library internal scheduling is done. Typically the deep sleep function is placed just before schdeuling the next job.
So I think there is no need to change anything in the LMIC library.
As Matthijs stated in LMiC’s TX_COMPLETE event takes 20-30 seconds to fire we just have a problem because the micros also “stop” while the node is sleeping. So taking care of the duty cycle is delayed.
He suggests to adjust the Arduino internal micros() function.The code snippet I posted is just a try to do this.