Because the returned status is computed after the task is started, there could be a lock issue with the indexer if an event occurs while the status is being computed. This is most likely to occur with a large wallet but can in theory happen for any subscription.
Computing the status before creating the task solves this issue entirely.