You make some valid points about Blair and the effects of EU expansion, but I disagree that Blair was responsible for Brexit and that Cameron had no other choice.
The Labour Party has been predominantly pro-EU since 'New Labour'. There is - and was - little, if any, internal party debate about holding a EU referendum.
On the other hand, the Tory Party has been split about Europe for the best part of 50 years and the signing of the Maastricht Treaty was the catalyst for this split to turn into an internal war between the pro and anti-EU factions. Every Tory leader since then has struggled with how to deal with this.
As you say, Cameron believed that the referendum result would be 'remain'. If it were, he could effectively sideline the Eurosceptic wing of the party and tighten his grip on the party for years to come. The alternative would have been to take the 'Major approach'. Reject calls for a referendum and face down the Tory rebels. Didn't end well for Major but, I'd argue, the result was better for the country.
In essence, Cameron put his own future and what he perceived as the stability of the Tory party above the needs of the country.
As we all know, the gamble failed and the country is now split down the middle. The person who must shoulder the majority of the blame for this state is Cameron.