Claude Code's built-in notification fires independently per background task completion. When you run multiple background agents, you get a bell for each one finishing, plus another when the main session completes. If you have 5 agents, that's 6 bells instead of 1.
There's no built-in check for remaining pending tasks before sending the notification.