How do I make profile submissions more reliable, or at least not silently fail?
I think I've tracked down the problem on my site to the uk.co.vedaconsulting Mailchimp plugin. Removing that seems to fix my issue on my test server, making my hack of embedding an iframe unnecessary (described at Why won&#39;t data entered into CiviCRM profile html snippet save? ). Hopefully it also fixes my timeout problem described here...testing that now.

EDIT Sept 22 2015: 

Nope, i was wrong...misled by confusions in reloading pages and accidentally making it work with the background-loaded embedded form hack. Disabling Mailchimp or other plugins does not in fact change anything.

The approach I'm now using, successfully so far, is to load the embedded iframe hack at the time of form submission, rather than when the page is first loaded.  So there's no danger of the page sitting too long , having the magic cookie (or whatever it is) time out.

1) user loads profile or page with HTML snippet

2) user eventually clicks "submit"

3) iframe hidden with CSS loads a small profile to set the magic cookie

4) when iframe finishes loading, it uses javascript to submit the original form

To accomplish this, I:

1) Embed javascript function in the head of each page with a profile:

&lt;script type="text/javascript"&gt;
function loadHack() {
  var ifrm = document.createElement('iframe');
  ifrm.setAttribute('id', 'embeddedhack'); // assign an id
  document.body.appendChild(ifrm); // to place at end of document
  ifrm.setAttribute('src', '/en/?option=com_civicrm&amp;task=civicrm/profile/create&amp;gid=21&amp;reset=1'); // assign url
}
&lt;/script&gt;


2) use the alterContent hook (and manually edit HTML snippets) to make the submit button call the function above instead of submitting:

if($tplName == "CRM/Profile/Form/Edit.tpl") 
  $content = str_replace('id="_qf_Edit_next"', 'id="_qf_Edit_next" onClick="loadHack(); return false;"', $content);


3) use the alterContent hook to add a callback to the embedded hack profile, to submit the original form once it's finished loading the iframe:

if ($object-&gt;getVar('_gid') == 21) //hack form
        $content .= "&lt;script type=\"text/javascript\"&gt;window.onload = function() {\n    parent.document.getElementById('Edit').submit();\n}\n&lt;/script&gt;";


This is all ugly, but seems to work.  I think this really needs to be addressed in core code, though.