Just some quick thoughts on this issue (I need to get my US tax return e-filed quickly - and this morning )...
You may wish to split the I/O procedures into separate stored procedures. The SP may be executing "shared" among the two users and causing the conflict in terms of a "shared connection" (not SPID - a connection).
Splitting the I/O routines in separate SPs could well solve this problem.
The profiler will not be much help here, as the SP is considered a single batch, and will not show individual queries in the SP as they execute.
We use a single SP for each "function" in terms of I/O. For example, we use an SP to update an order, and a separate SP to write a new order, and a separate SP to access an order in read-only mode. It keeps things separate, and we've not run into any conflicts, deadlocks, or other issues.
Best of luck!