After several iterations with these types of issues, my final design is that the strategy code makes no assumptions about what execution you will get. For example to buy at market, instead of sending a market order and assume I have a position, I send a limit buy above the ask to the execution...