Is there any way to prevent the current CMD input being erased by a blank history suggestion?

You could try adding Clink to your environment. It has a feature "History persistence between sessions" and from my testing (I typed a long command, did not execute it, pressed the up key and then the down) it displayed the last used command and the brought back the long command I'd typed.