Execute builds and pipeline hook asynchronously
Currently most of the hooks executed for pipeline and builds are performed asynchronously, but we still build a hook payload synchronously, which can block state machine transitions in pipeline and builds.
Currently we heavily depend on state machine transitions and it may be a cause of some problems with pipeline processing when transitions are delayed by code responsible for building hook payload (which involves file system operations etc).
State machine transitions in pipeline and builds should not be blocked for too long, so we should refactor code and perform execute_hooks
asynchronously.