Identified race condition when defining autocrank (message ordering), created deadlock when trying to make everything synchronous, so rearchitected quite a bit. Now runtime will call (instead of cast) step to each process and expect a list of messages in return, instead of each process trying to send the messages by calling back to runtime