Undo/redo batching: Replace setTimeout with an action
Undo/redo batching: Replace setTimeout with an action

This ensures that the command batch will only be ended after all queued
up actions have fired, yet still gives us the clean API of calling
`startCommandBatch` and `endCommandBatch` from outside.

[#101973812]
concord-consortium/building-models,concord-consortium/building-models,concord-consortium/building-models,concord-consortium/building-models,concord-consortium/building-models