Definitely could work but as you suggested its probably not the most elegant.
Since chef is about enforcing policy on a node itself… the only way for you to accomplish that is to issue an execute command like you have really done (it wont even know if it ran properly on the other node either!) which is the downfall of execute/bash in chef.
There could be other ways to implement it with message queues and all that other jazz.
It will be hard for you to validate what happens when the execute runs too.
Just out of curiosity what is it you want to execute? does it ‘have’ to run in an order? Orchestration is definitely one of the bigger challenges with chef.