Thanks for the reply. Yes, I ended up removing it all from the simulate events, and added it to a separate set of event. I think it's a bit of a bodge, but it works (for keyboard controls):
[Animations]
----+ Keyboard: ← is down
----+ Keyboard: [X] ↑ is down
----+ Keyboard: [X] ↓ is down
----+ System: carAnim ≠ "Drive.Left"
-----> Car_Dog: Set animation to "Drive.Left" (playing: True, loop: True, progress: 0)
-----> System: Set carAnim to "Drive.Left"
----+ Keyboard: → is down
----+ Keyboard: [X] ↑ is down
----+ Keyboard: [X] ↓ is down
----+ System: carAnim ≠ "Drive.Right"
-----> Car_Dog: Set animation to "Drive.Right" (playing: True, loop: True, progress: 0)
-----> System: Set carAnim to "Drive.Right"
----+ Keyboard: ↑ is down
----+ Keyboard: [X] ← is down
----+ Keyboard: [X] → is down
----+ System: carAnim ≠ "Drive.Accelerate"
-----> Car_Dog: Set animation to "Drive.Accelerate" (playing: True, loop: True, progress: 0)
-----> System: Set carAnim to "Drive.Accelerate"
----+ Keyboard: ↓ is down
----+ Keyboard: [X] ← is down
----+ Keyboard: [X] → is down
----+ System: carAnim ≠ "Drive.Brake"
-----> Car_Dog: Set animation to "Drive.Brake" (playing: True, loop: True, progress: 0)
-----> System: Set carAnim to "Drive.Brake"
----+ Keyboard: ← is down
----+ Keyboard: ↑ is down
----+ System: carAnim ≠ "Drive.Left.Accelerate"
-----> Car_Dog: Set animation to "Drive.Left.Accelerate" (playing: True, loop: True, progress: 0)
-----> System: Set carAnim to "Drive.Left.Accelerate"
----+ Keyboard: → is down
----+ Keyboard: ↑ is down
----+ System: carAnim ≠ "Drive.Right.Accelerate"
-----> Car_Dog: Set animation to "Drive.Right.Accelerate" (playing: True, loop: True, progress: 0)
-----> System: Set carAnim to "Drive.Right.Accelerate"
----+ Keyboard: ← is down
----+ Keyboard: ↓ is down
----+ System: carAnim ≠ "Drive.Left.Brake"
-----> Car_Dog: Set animation to "Drive.Left.Brake" (playing: True, loop: True, progress: 0)
-----> System: Set carAnim to "Drive.Left.Brake"
----+ Keyboard: → is down
----+ Keyboard: ↓ is down
----+ System: carAnim ≠ "Drive.Right.Brake"
-----> Car_Dog: Set animation to "Drive.Right.Brake" (playing: True, loop: True, progress: 0)
-----> System: Set carAnim to "Drive.Right.Brake"
----+ obj_Player: Car is moving
----+ Keyboard: [X] ← is down
----+ Keyboard: [X] → is down
----+ Keyboard: [X] ↑ is down
----+ Keyboard: [X] ↓ is down
----+ System: carAnim ≠ "Drive"
-----> Car_Dog: Set animation to "Drive" (playing: True, loop: True, progress: 0)
-----> System: Set carAnim to "Drive"
----+ obj_Player: [X] Car is moving
----+ System: carAnim ≠ "Idle"
-----> System: Set carAnim to "Idle"
-----> Car_Dog: Set animation to carAnim (playing: True, loop: True, progress: 0)