Spreading factor strategy

Changing spreading factor on one device effectively makes it deaf from other devices as if it’s on a different channel. I have created a working mesh with fixed spreading factor 12 with dynamic transmit
power levels . Although I am getting good links. Spreading factor 12 means I will be on air longer than 30 seconds per 24hr with 1200 mseconds to transmit 18 bytes. So what is the best strategy to optimise spreading factor in a way that local nodes are all on to the same one? But change spreading factors dependant on link quality . And other nodes do the same to keep in contact…Without using an acknowledge packet as ack packets are not allowed. .

Maybe using some kind of “probing” packet. A node could send a probing packet at a different spreading factor and listen for a response. If it receives a response, it could switch to the new spreading factor. If it doesn’t, it could return to the original spreading factor.
You could also use RSSI measurement somehow by starting at SF7. Depending on some threshold you could increase the SF if RSSI/SNR is below and decrease if it’s above.