100% agree with Doug here, but I've been using very fine-grained actors for some time now...
As an example, consider an actor with a continuation-passing-style call-return interface (i.e.: it takes a "customer" to whom it will reply). Now say that in order to service a request it wants to use the services of a couple of other actors. If it wants to be the "customer" for each of these subordinate calls, it must temporarily ignore everyone else. The key observation here is that the call-handler itself is a state-machine with states that represent waiting for each subordinate result.
The solution is to create a work-order actor for each request to the entry-point actor. Then the work-order can "become" each new state until the work is done. At this point it can reply directly to the customer given to the entry-point, or if the entry-point needs to update transactional state, notify the entry-point of the transactional result. If the entry-point must really become "insensitive" during the transaction, it can become an explicit buffering actor (serializer) to hold pending requests. However, the entry-point can also be smarter than that, servicing non-conflicting requests concurrently and/or rejecting inappropriate requests. It can even enforce service-level policies like dropping requests that overflow a policy limit or providing back-pressure, if the API is designed to support that.