But if you use the Migrate option, doesn't it convert it to HD format? or the existing keys will still be non-HD derived so you would still need to manually import each existing public key?
Both are true.
It'll set an HD key to be used for its new active HD descriptors (
for your new addresses).
And the previous loose keys are converted to single-key descriptors like:
pkh(WIF) or
combo(WIF).
Of course, the new HD parent descriptors can't be related to your old non-HD keys.
If you're interested on an alternative, there's a way to skip that:
Plug an external drive that has an updated blockchain to the offline machine, reindex your offline Bitcoin Core, rescan for txns, then create, sign & export the transaction to the online node.
To do that, simply copy your
own online Bitcoin Node's "
blocks" folder (
you may exclude the "index" folder inside) and paste it to the offline machine's node's datdir.
Then start your offline Node with
--reindex and it'll create its own index and chainstate directories. (
this will take hours to finish).
With a blockchain, even offline, you can load and rescan your wallet and create a transaction there.
Just export it to the online machine once it's signed.