At this point we're hoping for two things: 1.) A way for our team to be alerted when lags like this occur (none of these occurrences led to updates on Marketo's Status Page), and 2.) A way to capture the form data so our sales team doesn't have to potentially wait hours before the lead is known and synced to SFDC.
 is easier than . But both can be done.
For , use an external monitoring service (Uptime, Monitis, zillions of others) to post a form to the forms endpoint every 5m. On Filled Out Form, log the fillout to a Google Sheet via webhook (I posted the recipe for this a long time ago, search for it) or to any other lightweight database (we use our etcd database but there are lots of platforms that will work equally well for this simple thing).
Then have the same monitoring service get the last updated timestamp from the db. If it's ever older than ~6m you know you have a processing lag. You can tweak the intervals but I hope you get the idea.
For  you've got your hands full, comparatively. You're gonna be hooking the onSuccess API event, copying the form data to another external service, and then redirecting the lead. Again you can use a Sheet or any other cross-domain-capable service. It's not that it's hard per se; it's actually easier than most JS-based form customizations, 'cuz you don't care about anything but copying the data out as-is. But you've introduced another layer into the ecosystem: now, if there's a fatal problem with that external svc -- that too can happen! -- you have to make sure to ignore any exceptions and proceed with the Marketo follow-up process.
IMO,  is a normal part of Marketo instance monitoring.  is not something we usually spend time on. But it's not crazy especially if you've been bitten by lags and need to show that you're building a best-effort fallback.
Thank you, Sanford!