Currently when an admin clicks full sync for a user federation it's executed as part of the request. If this operation takes a long time the request will time out.
When running sync operations it should be executed in a background task. The admin should be able to view scheduled and running tasks and also have the ability to kill them. If the admin can also view progress that'd be great (50% done..).
We should make sure that only one task can be scheduled at the same time. For example it doesn't make sense to have 5 full sync queued up at the same time.
We could also add support for scheduling these syncs using cron expressions.