Ok so I managed to get it working. Turns out, my bot can connect to darkplaces, fte, and manquake and stay connected indefinitely as long as I spam some unreliables. However, and this is where I was messing up, proquake will still disconnect the bot. Unfortunately I don't have the proquake source code to examine, but I did manage to find in my packet captures that proquake sends an impulse 39 reliable message every 5 seconds. I spoke with r00k and he said that this was proquake's way of determining pings and such. He ended up giving me some insight on how Qrack handles this.. Essentially, the bot just needs to send an unreliable with the correct 'action time' in the form of a client movement order with an additional '39' as the impulse number. Upon doing this, my bot has remained connected to all proquake servers without issue.
Now, I just need to build upon this and add some code to handle map changes and afk timelimit disconnects. Thanks for all your help, guys!