I'll open this up again. I've just received some JSN-SR04T V3.0 and was having similar issues to those described here. Using PlatformIO and the Arduino framework and a simple code that did the 10us pulse and measured the time of the return pulse.

The top trace is just a line toggle as the code goes around the loop. The second trace is the echo and the bottom the trigger pulse. You can see that multiple triggers don't get a return echo. Using the function pulseIn() it times out after a second and we go around the loop again.
Using pulseInLong, that also defaults to a 1sec timeout but making the timeout 10000 ensure the code doesn’t hang for longer than necessary. but still, losses plenty of echoes.

Next was increase the trigger to 12us It still gets the occasional lost echo

So next was 20us trigger, very few lost echoes

and 30us trigger, no missing echoes

So for better reliability us a 30us trigger pulse and the pulseInLong() function with a timeout of 10000.
I concluded that the limited datasheet saying the trigger should be 10us really should say greater than 10 us.
Hope that helps somebody
Pete