I use the Path Rule and associated Path Command by _mutton_, kuid2:71155:60006:4 and kuid2:71155:60007:4.
In Surveyor -> Edit Route build your route so that each track has a point or turnout in it. These can be (in UK terminology) catch or trap points, or "invisible" - ie made of a short section of invisible track with an invisible lever. Place these junctions after the crossing. Set the default directions of these levers to the dead-end invisible track. Place 4 signals on each track approaching the crossings.
Name the 4 junctions. For example if your tracks were to be named NS (for north-south) Up, NS Down, WE Up and WE Down, then the turnout levers could be named NSU, NSD, WEU and WED.
In Surveyor -> Edit Session, set up the Path Rule so that each path contains 3 (YES three) junctions - 1 for the route itself and 2 for the crossing tracks. For example, to set the route North-south Down, set the path to contain junctions NSD (set to through), WEU and WED (both set to the dead-end). Also set NSD as the release object (which is why we place the junctions after the crossings)
Thus when the driver command Path Set calls the route north-south down, it will only set the junction NSD to through if both WEU & WED are also free. It will then lock WED & WEU to the deadends, preventing any signal from clearing, and allow the train through junction NSD. When the train leaves the NSD junction, NSD and WEU & WED are released.
Result is a fully protected double-double-track diamond crossing.
I believe the only example left in the UK is just north of Newark, where the Newark-Doncaster section of the ECML crosses the Nottingham-Lincoln line.
https://www.google.co.uk/maps/place/Newark-on-Trent,+Newark,+Nottinghamshire+NG24/@53.0905786,-0.804763,152m/data=!3m1!1e3!4m2!3m1!1s0x487834455e4590d7:0x2fa6a5583441f3c3!6m1!1e1