allow system registrations to happen without waiting on tasks to complete
Currently, system registrations will create a task and then wait for that task to complete before the API call returns. This works in most circumstances, but there is no task completion time guarantee. If a system is heavily loaded with tasks, system registrations may fail since subscription-manager may time out.
The parts of system registration that need to be done before the API call returns should not be done via a task. Unregistrations will need to be handled in the same way, since users may expect a subscription to be freed immediately upon unregistration.
Fixes #21703 - register systems immediately
Previously, when a system registration API call came in, a task would
be created. Once the task was complete, the API call would return.
This caused issues when there were lots of tasks in the task queue.
There is no guarantee that a task will be complete by a certain time,
but the API call is holding a passenger process and waiting for the
task to complete.
Instead, perform the registration immediately and do not create a
registration task. Unregister has also been refactored to execute
immediately, since users may expect subscriptions to be immediately
available if they do an unregister and then register.