Moved progress events to separate bus, updated tests.

Added a progress bus in addition to the msg bus so progress events are broadcasted independently from task completion.

Also updated the tests to be more deterministic by no longer requiring an initial setTimeout delay.