BJP will fight 2029 under Modi's leadership.
I suspect very soon after the elections, the transfer from Modi to someone else would happen.
Amit Shah and Yogi are clearly the front runners.
Modi will bat for Amit Shah, surely, and that will make a lot of difference.
Amit Shah does not have the charisma of Yogi but he has managed to deliver spectacular wins for BJP in and out of parliament and that probably will be the deciding criteria.
Key difference here is that in 2014, Modi was the face and BJP won on the back of Modi.
in 2029, if they win, the face would still be Modi.
That fact would be the major reason why the successor would be someone Modi prefers.
But by 2034, there would be few more candidates from BJP who would join the fray for top position but I suspect by then Yogi would have become similar to what Modi was in 2014.
Shivraj Singh would be a compromise candidate at best.
Others are not fray to be honest.