Making actor non reentrant

You really shouldn't do this: mixing-up GCD semaphores is a bad idea, even outside of actors and async functions. There were several detailed discussions on the topic: