Advanced comments?

Hi, are there any module or additional features that extend the Comments functionality?

There's several limitations of Comments:

- Can't make comments without Edit permission, but often our workflows will be setting documents as Read Only

- Can't make comments on something that's Checked Out

- Can't tag user's names in the text to respond to specific people

- Can't respond to specific comments with another comment (like a message thread)

Can filter for Comments = Not Empty, but:

- Can't require additional comment to be added before workflow states are actioned (ie document is rejected, needs to have a comment explaining why)

- Can't use additional comments to trigger further workflow transitions (ie the document's originator responds to the rejection comment)

Which also means people don't get notified that their comment has been responded to, unless they subscribe to the document?

Ultimately we'd like something where there can be a discussion of approval / rejection type comments, responses to those comments, and integrate this into workflow transitions

Many thanks