rusticl/kernel/launch: move implemenation into event work item and clean up a little
This mostly just enforces the split we have in Kernel::launch
moving more calculation into the event work item to offload from the application's main thread. It also makes things easier to reason with and allows to keep more references instead of having to Arc::clone
individual objects, as the entire relevant state is either cloned or referenced.