So just an update, it appears there is an issue in tds.py and the author has added a branch sp1d3rx-problem and it does fix it.
Now the only issue with pytds is DSN support.\
To fix the tds.py look around line 2570 or so and comment out this:
# if not msg['server'] and self.login:
# msg['server'] = self.server_name
then edit your dal.py....
around line 3453 will be this:
return self.driver.connect(cnxn,**driver_args)
change it to this...
return self.driver.connect(server=host,database=db,user=user,password=password,port=1433, tds_version=0x70000000,autocommit=False)
(use whichever tds_version matches your version of sql server. in my case, this is sql 2000. you can also just leave that off)
and you have a working pytds with web2py... which means you can run web2py under pypy (you could before, but this should run better) or even use gevent.
the problem with using gevent is that the sql communications, both pyodbc and pypyodbc rely on compiled c libraries and thus the communication with the sql server has to be synchronous. pytds is pure python so it doesn't have that issue.