Three channels, one decision by the user
The same event can go to the bell in the app, pop up live in an open tab and arrive as a system notification when the browser is closed. Each user decides separately for each kind - new task, comment, mention, chat message, settlement, reminder. Turning one off does not silence the rest.
Without flooding
Chat messages do not generate a notification for every line - one conversation produces one notification every few minutes. An @ mention takes precedence over a regular notification, so you do not get two about the same matter.