unfortunatly this is not a newly discovered bug, and is fairly fundemental in explaining why frikbots never gained any real popularity in the qw scene.
Aaaanyway, the problem boils down to the QW engine trying to be a bit cleaner than NQ.
There's a bit where it clears ALL the entities fields before calling SpawnClient instead of only a few.
This means that some field on the frikbot is cleared and results in the player entity ultimatly linking to itself in the linked list marked with the player_head global. Which results in runaway loop errors.
The easiest solution is to rebuild the list entirly each time, rather than just adding to it. Or just using find instead of the list.
Alternativly you could spawn the bots from entities spawned via the spawn() builtin instead of finding unused player entities.
Unfortunatly with just relinking, there's a small time period where the list will be broken (disconnect at the 'right' time and it'll never be fixed). So you're best off removing the player_head global and fixing the code around it (nextent 32 times maybe?).
Or you can edit the engine, find the offending memset, and comment it out. (SV_Spawn_f in sv_user.c should be where it happens)
.