1) In NFA mode, BrokerTrade must never return a negative number.

No. It can return a negative number when the position was closed.

2) In NFA mode, order is placed via BrokerBuy2. Order is completely filled and is therefore complete. So BrokerTrade must return the full fill (positive) and then return NAY on the next call.

No. It should return the fill when it is known, NAY when it is not known.

5) In NFA mode, order is placed via BrokerBuy2. BrokerTrade returns NAY the first time. Zorro therefore assumes the order was 100% unfilled.

No. It assumes that the API does not support BrokerTrade.