Unfortunately try_unwrap can't be used for linear-ish Arc<Task> type finish line. This is because it returns Arc<Task>, which is then dropped anyway without any checks. So there is a race condition that could result in a dependent task not firing.
See rust-lang/rust#79665 for the solution that got closed (unfortunately) due to inactivity, also discussion on rust-internals.