user4911: The off-chain contract code is recursive, holds and waits until endpoint is called, then executes code (gets busy for a little while), then recurses.
What happens when a endpoint is called while the contract code is "busy" handling another previous call, hence it is not listening.

user255: The endpoint is a Promise - which is asynchronous. When called multiple times with different ContractInstance, it works without any conflicts.
What happens when an endpoint is called twice by the same ContractInstanceId can be found here

4911: <p>The off-chain contract code is recursive, holds and waits until endpoint is called, then executes code (gets busy for a little while), then recurses.</p>
<p>What happens when a endpoint is called while the contract code is &quot;busy&quot; handling another previous call, hence it is not listening.</p>
 255: <p>The <code>endpoint</code> is a <code>Promise</code> - which is asynchronous. When called multiple times with different <code>ContractInstance</code>, it works without any conflicts.</p>
<p>What happens when an <code>endpoint</code> is called twice by the same <code>ContractInstanceId</code> can be found <a href="https://cardano.stackexchange.com/questions/4026/hooks-empty-after-calling-endpoint">here</a></p>
