Serial.flush() before sleeping indeed works! Seems like a much better alternative rather than putting a random delay.
Edited: Do you happen to know why both delay works as well though? Are we basically hoping that serial communication completes while the MCU is delaying?