I wouldn’t try to completely imitate full fledged debate sites. They have mechanisms to propose a debate resolution, some argue in the affirmative, negative, user 1 gets an opening statement, then user 2, then three rebuttals etc. Some even have word limits and response timers. That’s too complicated IMHO.
A simple flow would be user 1 invites user 2. User 1 can accept or deny. If deny, then the thread goes away. If accept, the it stays for only the two users. People can vote. Maybe that’s all.
But I completely get what you are saying about general discussion.
I like the idea of a thread “tree” though. vBulletin has something like that. Any thread can have sub-threads, so it’s like little individual conversations. If two people go off on something, it doesn’t disrupt the entire thread. If your “posts” table has a thread ID, you could probably get away with just adding a parent post ID. Tough part would be managing the tree styles and lazy loading ...
Ahh well, just thought I would throw it out there.