When I push an action to a non-producing node (either a node that is not producing at all or a block producing node that is not responsible for the next block) what happens to that action? How does it get routed/processed for inclusion in the next block?
The node that receives the transaction, validates and runs it first (even a non-producing node).
If it's successfully run, the transaction becomes pre-validated and the node forwards it to all the connected peers.
This process repeats until all nodes in the network eventually run this transaction.
Some of the connected nodes will be block producing nodes and they will execute this transaction as a part of the block.
Once this transaction is run by 15/21 block producers - it reaches its finality.