I've successfully used psiturk for non-aws, there's no problem with that approach. You just have to change the /complete.html template to your liking, and you have to set up a landing page that will generate arbitrary workerid, hitid, assignmentid for your given participant. Then you pass those to exp.html, and as long as they're the right format / length, experiment.py won't complain.