Looks neat! I've been using Amp (https://ampcode.com/) for a while (Which seems to be doing something very similar), and I really appreciate this type of workflow. One thread = one VM feels like a solid model going forward.
Agreed. Per-thread VMs are quite similar to how local agents use worktrees to avoid cross contamination, but with the added benefit of being able to easily scale up/down compute requirements on demand.
Same instinct locally with git worktrees: one agent per worktree so they do not thrash the same checkout. Cloud VMs buy isolation and scale; worktrees buy cheap isolation when you already have a machine. I end up using both patterns depending on whether the bottleneck is compute or just not stepping on each other.