Using ESP32 as a wifi/bluetooth modem?
There are a few reasons why the A20/ESP32 aren't the optimal approach:


All those buses has a master and slave side. The ESP32 is a full blown programmable microcontroller which one would run user code on. As such it primary function is to be a master. You need to make sure ESP32 supports the slave side.
If the ESP32 is capable of being run as a slave, it will need a custom kernel driver on the Linux side to be able to provide the same userspace API that the "dumb" devices do.


Otherwise, choosing the correct protocol is mainly a question of data throughput and availability of Linux driver support.