TLDR:
I entered incorrect information on my ESTA application, it was approved and I was able to visit the US. Is there any way to admit my wrongdoing, face a penalty and "be done with it"? Or will I have to keep lying any time I visit the US?
Full context:
Due to a family emergency I needed to go to the US on very short notice. I soon discovered that my visit to Iran in 2013 now disqualifies me from the ESTA program (was not the case the last time I got an ESTA in 2014). I called multiple US embassies and while they offered me their sympathy, they could not arrange a fast enough visa procedure. Knowing that I'm taking a big risk, I had no choice but to apply for an ESTA, answer "no" to having been in Iran, and hope for luck. I would normally never dream of doing this, but the circumstances were dire enough to justify the risk of border denial and even a lifetime ban. To my surprise, everything went smoothly. The ESTA was approved and the border crossing was quick and easy.
Now that the family situation is resolved and the dust has settled, I wonder what the best way of dealing with this for future US visits is. If I go the legally correct route and apply for a visa in the future, they're going to ask why I don't just get an ESTA, and when learning about my Iran trip, they will likely realize that my last ESTA had a lie in it -> instant lifetime ban (?). So is my only option to keep pretending like the Iran trip never happened?
I'd be happy to face a penalty, like a 5-year ban, if there was some mechanism for coming clean. I realize it sounds far-fetched, but the US government should at least in theory prefer to have truthful information, as opposed to incentivize me to continue misleading them. Is there anything I can do?
And for anyone who might consider lying on their ESTA application: don't do it. Not worth it. It was probably just dumb luck that it worked out for me, and I might need to pay for it later on.