Goku hints that he could have defeated Buu, but lets him go so that he has an excuse to train up Goten and Trunks, two children who get murdered because of this lack of foresight. Goku also keeps fighting Majin Vegeta even though he knows doing so is giving power to Buu, yes, Vegeta isn't going to take no for an answer, but Goku has Super Saiyan 3 and Instant Transmission up his sleeve to end the battle almost instantly. Speaking of Super Saiyan 3, I really fucking hate it. It looks dumb, it is functionally useless and where do his eyebrows go? Is his forehead so buff that it folds over and the eyebrows are under the muscle somewhere? This constant stupidity is made slightly better by the Goku/Majin Vegeta being, hands-down, one of the best fights in DBZ and the presence of Dabura, a brilliant villain who gets far too little screen time. Even though he is basically Satan, Dabura has a strong code of honour and turns on his master when he learns that Buu is an unstoppable force of destruction.
Were I not doing these articles, I'd probably skip the last two seasons, as they really drag and there's not much interesting going on. I can get my Dabura fix from my cards and YouTube has plenty of cuts of the showpiece fight. Buu is more interesting before he splits into multiple characters later on and many of the threads are picked up better in Dragonball Super, there are even some nice retcons that explain the massive plotholes. At least I have Vegito and Ultimate Gohan to look forward to in the last season when I work up the courage to watch it again.