in reply to catching failures and retrying

Maybe this is obvious, but to implement some of the suggestions, you need to determine what 'failure' means. With regular Mechanize, you can check 'status' to see what code you got back. Anything other than 200 is an error of some sort, and you can set up various handlers to react based on different error codes (402, 404, 500, etc.). If it just times out, you can detect that value also.

Trouble is, I'm not sure if the Win32 version sets status the same way the base Mech does. If not, you may need to do some more work to evaluate the results of a 'get'.