Made some reliability changes to design time host

- Made the processing loop continue until there's no
more messages. Previously, posting subsequent messages
while the processing lock was held would just noop leaving the chance
for work to stall. Checking for changes after processing fixes that.
- Moved the assembly writing to another method