What is preferred method for controller-to-controller communications?

It seems that OPC UA would be, but there seems to be quite a few caveats with using OPC UA. Any other methods besides OPC UA and Profinet?

Use raw tls/tcp/udp socket and pack/unpack fb, if we talking about plcnext serie.

Different communication methods suit different requirements.
I would pick the best available communication method based on the requirements of the application.
OPC UA pub-sub would be a good choice for the continuous non-real time transfer of data between two PLCnext Control devices on the same network.