Instead of storing the entity, we could store a `Future` that represents when the entity has been removed. The future is done when the entity has been removed. We can then wait for this future and any other needed futures to be done.