Transmitting multiple values to the arduino, and Interpreting them with minimum delay
I don't know about commercial drones, however your 'protocol' seems to be quite efficient, as it uses 4 bytes to send 2 values (e.g. U3F5) for Up with speed 3 and Forward with speed 5.
Let's assume values from 0-7. Then you can send them both in 8 bits/one byte:
H H H H V V V V
Where H is the horizontal speed (from -8 (000) to +7 (111), in total 16 possible values.
For the vertical speed you can do the same.
So within one byte you send both speeds (meaning also there is no lag).
In case you need more accuracy, than send two bytes: one byte with horizontal and one byte with vertical speed. Depending on the sending/receiving speed I doubt there is any lag.
Even with your protocol I doubt there is a lag, but the above is more efficient.
I'm sure even more efficient algorithms can be created, probably by using the difference with the previous value (like sending delta values).
Another algorithm that can be created, assuming there is a big chance that only one of the two directions is changed (either horizontal or vertical is) and having a high accuracy
D V V V V V V V

Where D is the direction (0 = horizontal, 1 = vertical) and V is the value/speed (-64 to +63, 7 remaining bits).