By comparing with a working payment form I was able to trigger payment by typing the following in console:
// add the missing form inputs
$("form").append('<input id="paymentDisclaimerChecked" type="checkbox" name="paymentDisclaimerChecked" value="yes" checked />')
$("form").append('<input type="hidden" name="_eventId_pay" value="Submit" />')
$("form").serialize() // check form values are as expected
$("form").submit()
Now have my ESTA approved - San Francisco here I come!