You're correct in that if the input gate is closed, no new requests will come in. The input gate is opened whenever you make an external async request, such as fetch another DO/worker - so that should open the input gate and allow other requests to be processed in the meantime.
"Any other events will be deferred until such a time as the object is no longer executing JavaScript code and is no longer waiting for any storage operations"
@skye_31 another potential issue. say my DO needed to calculate some expensive hashing function when a user logs in, that would block all other requests
@skye_31 I guess I just liked the idea that my entry point would be colocated with my other DOs so communicating between them would be faster, and things like a rate limit check could even be stored locally to avoid an extra request for each user request