Agreed. I wrote a blog post outlining a way to get around this. (https://medium.com/building-things-people-want/slack-is-too-...) The gist: turn off all notifications then flip them back on by channel. Still doesn't address de-coupling of pop-ups and sound, though.
Thanks! We actually started with NLP libraries, but fell back on plain old regex, which in the end was the right tool for the job, though it got a bit hairy. (Nice to hear from someone who can appreciate it.) As for daylight savings, we use the browser to get a current GMT offset on your first request and determine an Olson TZ, which we cookie. Subsequent requests are passed off to a Node instance for processing along with the time zone, which also processes posts from Slack and HipChat. And yes, MomentJS and Moment Timezone are the workhorses here.