hook_init() equivalent for console command
I've found out what's going on with this. It appears that Drush uses its own event dispatcher separate from Drupal's and that's where the console command event is actually dispatched. That means I need to manually add a listener to Drush's event dispatcher like so:
\Drush\Drush::service('eventDispatcher')-&gt;addListener('console.command', 'Drupal\mymodule\EventSubscriber\DefaultSubscriber::setLdapEnvVariablesCli');

Unfortunately there's still a problem: I need to add that subscriber somewhere that's called before the start of the command in order to be able to call things before the start of the command.
I ended up having to actually subscribe to the Drush event dispatcher event in settings.php:
if (function_exists('drush_main') &amp;&amp; method_exists('Drush\Drush', 'service')) {
  \Drush\Drush::service('eventDispatcher')-&gt;addListener('console.command', 'Drupal\mymodule\EventSubscriber\DefaultSubscriber::setLdapEnvVariablesCli');
}

This isn't ideal but it does at least let me keep most of the actual logic in the subscriber.
then I made the CLI callback method and the common method static:
public static function setLdapEnvVariablesCli(ConsoleCommandEvent $event) {
  self::setLdapEnvVariables();
}

protected static function setLdapEnvVariables() {
  // ...
}

It's a bit ugly but it works. I'll just have to document that a settings.php change is needed in the module README.