If read-counter is already incremented once a millisecond, use that to time your LED flashes:
void wait_function() {
timer_init();
bool LED_State = LOW
while(read_counter()<30000) { //30 second wait
// A LED blinking at 1 second intervals ???
if (read_counter % 1000 == 0) { //Switch 1000 to 500 here if it flashes too slowly
LED_State = !LED_State;
digitalWrite(LEDPin, LED_State ? HIGH : LOW);
}
}
}
That code will turn the LED on for one second, then off for one second, etc. (For a total cycle time of 2 seconds.) If you want the full on-off cycle to last 1 second, lower the if statement's value from 1000 to 500.