I’m not sure how good a solution SQL Service Broker will be, as messages can only be received from a queue once. You would have to have a destination queue for each user, which would cause you to have a very large number of database objects very quickly. I’m not sure if a queue technology which is dynamic is going to be the best solution.
If you wanted the messages persisted then a database table which stores the messages (possibly loaded via a SQL Service Broker Queue) would probably be a best option. Then just have the conversation users read from the table.