• "what is interesting is that every time I tried this, the procedure that I called later completed first and had the smaller OrderID, although when we call the same procedure twice we would expect to see results from the first call first. Have others experienced such behaviour after blocks as well."

    Could you run the profiler and see which procedure is executed first? I don't see any reason why it should return the orderID in reverse sequence.