Memory leak: items not deactivating

When navigation is canceled (or redirected) during an async activate, the old item is deactivated twice and the new item is not deactivated at all.