You're right, Cloud to Device messages are not supported on Azure IoT Edge. The work arounds are the same as you mentioned, please check the answers to this question.
The workaround that you choose depends very much on the problem you're trying to solve. A direct method to a module is very straightforward, you can communicate with a module if the device is online. The module twin can also be used to communicate data to your module, and can be used asynchronously as the device will either receive the update when it's online, or when it comes online later.