I'm using Xcode 13 Beta 4 and still running into this.
I found another workaround (I'll use MacOs playground when possible).
Whenever I accidentally hit an infinite loop (happens a lot doing DP problems :) ) and hit the Square in the lower left to Stop I'm doomed.
Once stuck in this state, even if you kill Xcode when you open it, it immediately starts running again (with the bad code).
Even if I fix the code, it just starts up and gets stuck.
My project is in GIT and noticed this difference in the project (contents.xcplayground)
It adds and sets a flag executeOnSourceChanges='true', I just revert that change and I'm good to go.
Also if I do run into an infinite loop and just kill Xcode rather than try to stop it, that also avoids the problem.
This is the Diff of contents.xcplayground (this file is inside your playground project "content folder")
I might try adding that attribute and set it false and see if that prevents it from getting set true. Rather than absent.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<playground version='5.0' target-platform='ios' buildActiveScheme='true' importAppTypes='true'>
+<playground version='5.0' target-platform='ios' buildActiveScheme='true' executeOnSourceChanges='true' importAppTypes='true'>
<timeline fileName='timeline.xctimeline'/>
</playground>