Fix recurring errors when a non-existent package is disabled

Two problems:
* `PackageManager::activatePackage` throws an error when disabling a non-existent package. It should probably just reject its promise.
* `Config` observers get into a bad state when callbacks throw exceptions.

Fixes #4721
Pretty minor, but could we DRY up this handler with the one in `onDidChangeScopedKeyPath`, they seem pretty similar.