The political reality in 2018-19 was that, in parliament, there was no majority for any single course of action. I suspect that this reflected the population at large: many of those who voted for Brexit did not want a 'hard Brexit', so it is unlikely that there was a majority for any single course of action, at any point on the remain-leave spectrum.
I have some sympathy for your argument that the people voted to leave, therefore we should leave. But by the time it got to 2019, the people who could have compromised were rightly highly concerned that a vote for 'soft Brexit' would not end matters. By that time, popular sentiment had been whipped up that '
they are trying to deny the will of the people', and staying in the Single Market/Customs Union would have been portrayed as a 'betrayal'. The argument would have run, we didn't vote to leave only to remain locked into trade and legal arrangements that we did not negotiate. We would still have been on a course for 'hard Brexit', only enacted by degrees. Farage, the ERG and the agenda-setting power of the right-wing press would have ensured that no compromise would have been good enough.
So, my position is that it is not right to blame those who tried to resist doing harm to the country, even if - tragically - the result was maximum harm. This was path dependence in action. The problem pre-dates 2018-19, and the blame lies entirely with the Tories, who needed to neutralise UKIP, and promised a vote without thinking through the consequences. A binary in-out vote on a question that needed to describe a path through a garden of forking paths was an invitation for demagogues to whip up division. And once Theresa May, in her Jan 2017
Lancaster House speech, chose to make 'control of our laws' and 'control of immigration' two of her red lines, the die was cast. Hard Brexit was all but inevitable, it was just a question of how and when it would arrive.