Are you absolutely sure that the G4 command isn’t waiting? Keep in mind that methods like action_respond_info are executed immediately upon template evaluation. In other words, before your START_PRINT gcode actually runs, the messages "Waiting 30s for temperature" and "Waiting done" will be sent. You can configure the respond section and use either the M118 or RESPOND gcode command to send messages in order of execution.
You can always create dedicated macros for testing purposes where you could for instance put two different messages in and a G4 with some seconds in between and then you should notice whether it works or not.