Honestly, I think the PM is taking a chance and hoping for a miracle.
The polls say he can’t win. But it’s unlikely the polls will get any better and very possible they will get worse and he has to call an election eventually.
Maybe he hopes that even if the Tories lose big now, it’ll still be a better result than if he waited.
But also - polls can be wrong. Here in Australia, the conservative coalition was meant to lose the 2019 election according to the polls. It managed to not only win, but increased its majority slightly.
In the UK, in 2017, Teresa May called an election because the polls made her think she was going to get a good result - but the Conservatives lost their majority and only narrowly managed to hold to power, because over the course of the campaign, things shifted dramatically.
Sunak is taking a risk and hoping the polls shift - or that even if they don’t, he’s going to get a better result than if he waited longer.