How to properly call drush command from another drush command?
If you use drush_invoke, you should first use drush_set_option('strict', FALSE); to turn off strict option checking for the subcommand.  drush_invoke runs a subcommand in the same process, which can be more efficient; however, there are a number of ways that this can go wrong, so it is often better to use drush_invoke_process instead, to run the subcommand in its own process.  If you do this, there is no need to disable strict option handling.

drush_invoke_process('@self', 'twig-compile', $args, $options);.