GC stop-the-world callback triggered multiple times
One of the causes behind #5081 seems to be that the Boehm GC sometimes calls gcCallback multiple times in the same runtime.alloc.
The gcCallback calls internal/task.GCStopWorldAndScan which locks internal/task.activeTaskLock.
The second call tries to lock it again, which causes a deadlock.
There is a check for this but it is performed after the gcMarkReachable and thus after the deadlock:
https://github.com/tinygo-org/tinygo/blob/bf613175e79d2cd6665949188f36afdf98cf8f60/src/runtime/gc_boehm.go#L57-L60
The gonum.org/v1/gonum/optimize/convex/lp test triggers this pretty consistently (if you have the #5083 fix)
I am pretty sure this is intentional. I will try to rework this to handle the repeat scan.
Labelling to close on next release.