You are welcome to have a look at PyWorks, which takes a quite different approach. It lets object instances run in their own thread and makes function call's to that object async.
Just let a class inherit from Task instead of object and it is async, all methods calls are Proxies. Return values (if you need them) are Future proxies.
res = obj.method( args )
# code continues here without waiting for method to finish
do_something_else( )
print "Result = %d" % res # Code will block here, if res not calculated yet
PyWorks can be found on http://bitbucket.org/raindog/pyworks