That's exactly what SPI does - data is transferred from master to slave on MOSI simultaneously with data from slave to master on MISO.
This is called "full-duplex".
Exactly.
As far as the SPI is concerned, it's all just data - the SPI neither knows nor cares how you structure that data within your code.
Ok , I have managed to get full duplex operating between two Arduino Mega , however ESP32 is more complex because of the ESP32SPISlave library, I have spent hours today searching for any articles / examples where someone has used full duplex on a ESP32.
Maybe I need to try build custom Mega board and ditch the ESP32