No perfect solution for #3162. DB locking would probably cause more issues that its worth, we cannot reliably use transactions as some clients still use MyIsam. Best to accept orders and deal with stock conflicts after the fact.