Great suggestions. I've thought a lot about this area and feel I've struck a good balance for risk vs. low barrier to entry. People don't think about it but third party payment aggregation is extremely risky from a fraud perspective and many times that cost gets passed on to the users.
Unfortunately I don't think I can hold off on payment collection until after the race because organizers need the registration money to actually pay for the race facilities. Any suggestions there?