found out that MvM Robots drop souls so I spent a few hours harvesting them for my Gargoyle
I loaded up mvm_example, loaded a custom popfile, and then used the following commands in a single line:
sv_cheats 1; ent_fire !picker setbuilder !player; ent_fire !picker addoutput "spawnflags 14"; ent_create obj_sentrygun; sv_cheats 0
result: spawn a sentry with me as the builder and the flags Invulnerable (except to Sappers), Upgradable, and Infinite Ammo. having sv_cheats 0 at the end of the line causes the game to think sv_cheats was never enabled so achievement progress doesn't get halted
every robot has a Rocket Jumper, so they cannot pick up the bomb. (because the initial carrier spawns holding it, it is the sole exception)
they're all set to hold their fire so as not to tax my graphics card.
for easy killing, they all have 1HP
yes, I enabled Sentry Busters. no, they aren't a problem since they only have 2HP (yes, 2HP. they are immortal and detonate when they reach 1HP. therefore, if they were set to 1HP, they would detonate as soon as they spawn)
after around 25,000 kills, my Soul Gargoyle reached the highest rank (36,000 souls). funny thing is the progress bar to the next rank in the Merasmissions tab still works for a few more sets of 2,000, but anything higher than 40,000 souls breaks it