Drop shipment should be managed with 2 sets of moves
It was interesting to share the same moves between the purchase and the sale but at this end the code is quite complex.
It will be better to have two sets of moves using an temporary location (similar to production). The workflow of drop shipment should take care of synchronize the quantities between both sets.
It will also have the advantage of managing 2 different states between the supplier send the shipment and the customer receive it.