pub async fn start_process( manager: &Arc<Mutex<ProcessManager>>, parent_pid: u64, args: Vec<String>, ) -> Result<Process>
Only the workspace should call this. Spawns a new process and tracks it with a monotonic ID.