Restore keys from keypool
Keypool keys are already in wallet.dat.  That's the whole point of the keypool.  When you run getnewaddress, you get the address corresponding to the oldest key in the keypool, and a new key is generated and added to the keypool to take its place.

So if your hypothesis is right, the key is still in the keypool, and if you execute getnewaddress again, you should get the same address as you got before.  Then you'll know you have the key.  bitcoind may not expect that there are already transactions on that address, so you might have to run bitcoind -rescan to pick them up.