I’ve made a few different processes for this using workflows
You can set orders to closed , do not commit or pending approval until items are not backordered
Also you can mark the Ship Complete box on the order and then you can’t ship until the whole order is there
The problem is with the commitments. Once closed or pending approval no items get committed so it’s hard to see what is backordered
I’ve usually had to use some sort of saved search to try and calculate commitments then “release orders” which would then allow commitments to take place
It’s a little wonky sometimes but there are ways to accommodate most processes. I find the biggest help is to have people manage the expected ship date properly. This seems to be the key to everything as you can then schedule releases of orders and know when to commit items based on this schedule