"rato" se refiere a un período de tiempo breve. "Hace un rato" es lo mismo que decir "hace poco tiempo". Por ejemplo: "hace un rato que María se fue"/"hace poco tiempo que María se fue" (quizás un cuarto de hora, o diez minutos). Sin embargo, si alguien dice "por un buen rato" se refiere con "bueno" no a un "rato positivo" sino a un "rato largo": esto es, "habló por un buen rato", esto es, que habló mucho tiempo (quizás dos horas o algo así, por poner un ejemplo). :)