I applied freeze sending. I then tried to force-close it but it failed: "bad-txns-inputs-missingorspent"
Any pointers?

If the locktime (
height or time) is still not reached, the error message alongside with the server error should be "
non-final".
That looks like a missing input error which was caused by trying to double-spend a already spent output or not-existed at all;
Can you check your wallet for possible closing transaction that wasn't labeled?
Paste the "
open channel" transaction's TXID (
in a block explorer) and check the non-change address output if it's already spent.
Also check if it was sent to one of your own wallet's addresses.
If there's no "
open channel" transaction, perhaps there's no established channel to begin with.
How come the channel status keeps saying "reestablishing" after so long without automatically unlocking it??
If it didn't see a confirmed closing transaction, it won't transition to "
Closed" but rather stay "
Open"
and "
Reestablishing" is a state based from the other peer of the open channel, means the channel is open but trying to re-connect to the other LN node.
There's an "Open channel" entry in History. However, the transaction ID doesn't show up in the blockchain after trying to explore it. ( I abandoned the attempt to open channel with a merchant and I did not sign the transaction).
How could I retrieve my locked funds? It's been forever in locked state.