Could you try if this patch fixes the crash as well? Calling stop again while in the middle of stopping looks more fragile to me. Existing logic should already cover calls that you added.
[patch.diff](/uploads/e1698d75ddf9ee6ec628fdac021820cd/patch.diff)