If we want to be sure of only tracking successful registrations, we'd have to do it in Bedrock, or even Basket, in the Python code - is that even possible?

Short of that, I made a couple of assumptions that maybe should be double-checked:
* that the submit event wouldn't fire unless any client-side validation (like required fields) had already passed.  We can see at https://www.mozilla.org/en-US/firefox/features/ that there's already client-side validation of things like the email field.
* that tracking the intent to subscribe would be a pretty close approximation of tracking actual subscriptions, for the purpose of understanding which pages drive the most subscriptions.

Sorry, I don't understand this comment: "You may also need to consider a timeout when registering the GA event before submit fires." - can you expand on that?