It turns out that the renderInvisibleReCaptcha() function isn’t being called, so I have temporarily fixed the problem by adding the following before the closing </body> tag:
<script type="text/javascript">
window.addEventListener('load',
function() {
if (typeof(renderInvisibleReCaptcha) == 'function') {
renderInvisibleReCaptcha();
}
}, false);
</script>
I’d still like to find the cause and permanent solution though.