A portable approach, not relying on the GNU Awk
RT variable, is to add a dummy record to your input: a dummy record which is not followed by the separator.
Then the input is strictly separated and you just have two cases to handle: you either have a blank second-to-last record, in which case the true last record is third-to-last. Or else, the second-to-last record is the true last one.
If you keep track of the most recently seen nonblank record in a variable, you can print that record at the end of processing.
There are various ways to add material to the end of input. For instance, some useful uses of
(cat real_input; printf "dummy_rec" ) | awk '...'
cat real_input dummy_suffix | awk '...'