After stuffing around a bit, I managed to test our my module in two ways: a), Dwolla have a test account that is a “reflector”, it sends any payments you send it back; and b) I forced a friend in the US to sign up for Dwolla, then sent him $5 and invoiced him for it.
Unfortunately, “test mode” doesn’t really work in my module because test mode doesn’t make up transaction IDs, they’re just null. WHMCS appears to throw away transactions with no ID. You cannot modify the transaction ID without voiding the signature (duh), so I eventually had to test it with live payments, but that’s not a big deal because payments under $10 are free (for now?).
I found numerous bugs in it, little things that are absolutely stupid that I missed. The git history is an exercise in hilarity. But it works, finally, and I’m having a few people go over it before I open source it completely.