I notice that single-threaded agents get stuck with things sometimes like writing some tool they need inefficiently so that it takes 3 hours when it could be 3 minutes (meaning that a task ends up taking days instead of hours, unless I intervene and tell it to make a fast tool instead) but subagents just compound this as they burn through tokens without realising the problem.