What would be the difference in command execution delay versus a wait in a piston? Which would be better?
Depending on usage, could be identical...really depends on what is going on in the piston.
CED does understand if commands were not issued due to command optimization, which may be harder (but not impossible) to implement in a piston.
I would choose what is easiest to implement for your piston.