Very cool! I know of Construct, but not familiar with its framework. Nice that you've found a workflow that is suitable for your needs.
Interesting you mentioned the "stop others until the turn is done" because that's exactly one of the problems I knew I had to also solve. My approach used an integer variable "timer_is_paused" initialized to 0 that would increment whenever an actor needed to pause the timer, and decrement whenever an actor has finished their action. Before an actor performs an action, I do a check to see if timer_is_paused equals 0.
Ah yeah, I've done something similar for the animations. So each animation is stored as an object that shows specific frames of a sprite and plays sound effects at certain points of in its lifetime. And once its internal timer exceeds a duration, then the object is destroyed. So whenever I need to display an animation, I ask the object to create an instance of the animation at a specific location on the screen.
The XML approach sounds pretty logical. I am entertaining the idea of using something more human-friendly like a CSV opened in a spreadsheet editor.
Any future plans for this ATB system you have created?