Weakauras is not so ideal for tracking timers when cast by other players, or another player's cooldowns.

What I did is make pairs of weakauras to do the "announcement" and the "timer display". I made all my characters join a chat channel with an obscure name. But unchecked that channel from my general chat display.

In your case you can make a WA called DoomSrc which on successful-cast-trigger says in the hidden chat channel "I have just cast Doom" and only triggers on own spell. So each Warlock will say it every time they cast.

Then make other weakauras to be the "receivers": a trigger which looks for chat event "I have just cast Doom". Using the option "Timed" you can make a progress bar or icon cooldown swipe that lasts 30 seconds. You will need to make one of these weakauras for each character (which is fine in your case because you want your click-throughs for each toon separately).

Apart from Doom timer, this technique is handy for more complex situations like demonic core. Although you can make a weakaura that shows how many stacks of DC, you can't see how many soul shards you have on another character. You might only want to cast Demonbolt when you have less than 4 soul shards. At that point you could click-through to a castsequence macro that casts Demonbolt followed by Hand of Guldan. So in this case the "announcement" weakaura would have 2 triggers for aura=DC buff and status|power|shards<=3.

However, be careful with creating too many "announcer" WAs because flooding any chat channel can cause client disconnects.