FIXED. I set a flag inside the Rx_ISR of uart, then read the message and unset the flag.
It seems that there is no delay now. I press buttons to change between modes and LEDs light on or light off instantaneously, completely different as compared to the older version. In addition by pressing the the buttons for the drone movements I can see the print-out of motor values instantaneously, like in the demo they had given to us.
It remains to test on the actual drone. (check fixed_branch)