The problem is something to do with the way the ESP32C3 reads various pins at startup, with a bare bones SX127X in circuit the ESP32 goes into waiting for USB upload mode.
Fit pullup resistors to the LoRa devices NSS and SCK pins cures the problem for me.
The problem seems to be that the SX1278 pulls down the MISO pin on startup. The MISO / D9 pin is used to put the ESP32C3 into BOOT mode, which is why the ESP32C3 gets stuck!
As @StuartsProject suggests, adding a pullup resistor on NSS solves the issue (NSS = high deactivates the SX1278 module).