Just a guess - but looking at your code you have a delay after LED_on but no delay between the LED_off and the LED_on
So the LED will stay in one state for most of the time (so it will appear to not be flashing).
The 4 second delay probably comes about because the transmit is happening under interrupts and rprintf uses a memory buffer. So to start with the buffer has space to store the next character to be sent and so you get: LED_off, LED_on, delay(160000) so it doesn't appear to flash (as mentioned above).
What probably then happens is that the transmit buffer fills up so the next call to 'rprintf("A")' doesnt have any available space in the buffer so it 'waits' for the background transmission to free up some space. This then introduces an apparent delay - so you now have LED_off, a delay caused by rprintf, LED_on, delay(160000). This new delay in the rprintf then makes the LED flash.
To test it out try changing your code to say:-
if (uartGetByte()==65){
delay_cycles(160000); //8 MHz internal oscillator
LED_on();
delay_cycles(160000); //8 MHz internal oscillator
}
It may then start to flash immediately.