Does the system status check and upgrade version check only list available updates for in-app extensions?
So I discovered what you can do is put this in civicrm.settings.php:
$civicrm_setting['domain']['ext_repo_url'] = 'https://civicrm.org/extdir/ver={ver}|cms={uf}|ready=';
Note the ready= at the end (the default is without it).
This then properly shows you pending upgrades for your installed extensions that are in the extension directory but not approved for automatic distribution. The downside is it now lists all the available extensions for your civi version on the Add New tab on the Extensions page as if they were approved for automatic distribution.
An alternative is I've made an extension that adds a status check to show you available updates for your extensions that are not automatically distributed: https://civicrm.org/extensions/notify-about-upgrades-unapproved-extensions