I would like add one thought: Messaging systems exist since 20 years and while used, they never got used in every single company. Kafka seems to, however. Why? Hype cycle?
The main and overarching advantage of Kafka is, like you said, the consumer is in charge. If you want to consume data, do you want to tell the producer or broker that you want to get data from now and wait? Or isn't it rather then case that you simply want to consume. Consume old data to try out the idea, same data again for testing or fixing, new data for production processes?
This simple point makes Kafka-like products so attractive that most companies use it. Kafka itself with KStreams provides some more goodies.