A big concern is having it fire every millisecond. The SO example works well and is a good demonstration of using Angular. Be very easy to tweak the code to make a countdown timer. The issue you'll be running into is that every time you change a scope variable you will be triggering a digest loop (the loop that handles changing all your DOM as well as any watcher functions looking at that countdown timer value). Although the digest loop is fast and quite optimized, having it constantly checking things seems like a recipe for bad things. This would be the UI/Performance stuff you wanted to know about.
As one suggestion, use a standard setInterval call to have the UI update with millisecond countdown. Then when the countdown reaches zero have it fire off an event or update a scope variable to trigger something to happen in the rest of your app. If you need the timer to make changes to the rest of the app depending on the amount of time left, I would recommend setting up a second timer. Have the millisecond timer countdown something on the screen using setInterval, and have a second countdown happening every second update things in your angular scope. Start them at the same time.