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