I noticed that when I am checking out from an AJAX order form (/order/main/packages/*), if I click "Checkout & Pay" the button will be disabled to disallow multiple clicks. However, if the service cannot be created because of an error, the page will show the error, but the "Checkout & Pay" button will still be disabled, so the customer cannot resolve the error and continue to checkout.
I encountered this specifically with a Universal Module product that had a custom service field whose error validation did not pass (e.g. the text field was required but did not contain a value). We should double-check whether this occurs for other packages as well, such as with config options.