Ansible is designed to work this way intentionally as it's quite useful for inter-machine orchestration and extremely useful for fine grained control when we want to do things like work with load balancers.
You might possibly want to consider invoking ansible-pull (or just ansible in local mode) from ansible if you want that architecture.
It's not going to be possible to do this with a "stock" push-mode ansible-playbook -- also think about how messy the output would be trying to read it from the CLI! :)
I should also mention that AWX has a nice callback feature that allows a node to phone home and request configuration that you might be interested in. Basically you just request a special URL via curl, AWX verifies the requesting system was in inventory, and then it will reach out and configure that system in standard push mode, but it doesn't have to wait on other systems. (Note: this is not the standard way AWX operates, but it's a supported feature).
I would probably recommend invoking ansible-pull via an async task for most basic use cases, though you're not going to have as nice of standard output.