I SIM this simple classD output stage. It's like Behringer output stage, with turnoff transistors.
The driver is idealized Vpulse, +/-10V p-p, rise/fall time=10ns, 2uS period and 0.5uS on-time (to reflect working under load). The load is 1.5ohm.
Try adding a 200ohm resistor in series with D2 and an RC snubber (R=10ohms, C=0.22uF) between VDD and SW. That helps get rid of some of the cross conduction but not all of it. I can post the switchercad files of the simulation I cobbled together in a little bit.
You're right, it is a simple and cheap classD output . But the more I study the cause, I found out that this cross-conduction will happen to all classD output topology, since it is caused by body dioda of a mosfet, not due to a certain topology. If you use adjustable "on" dead time for upper and lower mosfet, this Trr can be pursued (not to happen) in expense of wider dead time (=more distortion).
In 100's of khz switching, this body dioda reverse recovery is really a problem. It makes cross conduction of 10's of ampere (although the time is very narrow, but enough to heat up the mosfet). This will not show up at idle, you have to burden the output stage to make it show up. I think the heat caused by this body dioda cross conduction is higher than Rds heat.
The only remedy so far is to choose a better mosfet, with low Trr and low Qrr (like IRF540Z), or choosing the difficult way, bypassing internal body dioda and use external 30ns dioda.