The blocking check takes place when new order(lines) are created or changed. So any order that is already beyond the step that you have set as 'Block as of step' will process normally.
Also, any order that is never touched by anyone after the customer's status has changed (there are overdue invoices) will never check the blocking conditions and thus will not be blocked.
Now, you don't want to go in every order and make fake changes every day do you ?
There are two problems in the standard BaaN logic i.m.h.o.:
1) Actually I believe the logic in the BaaN sessions is incorrect, as the blocking logic in the sessions is actually "block as *on* step", whereas I believe it to be desirable that it should be "block as *from* step"; the orderprocess should be halted as on the specified step and all further ordersteps.
Or else at least the description and explanation of the field should be more clear.
2) Besides the order status (blocked/not blocked) the sessions in the order procedure should check the current customer status: are there overdue invoices, is the credit limit exceeded ?
There is no other solution to your problem then to customize the 'maintain deliveries' session to do the check as in 2). Or have accounting department send a signal to sales and block the orders manually.