Delay ajax from firing immediately (AJAX links api)
Ok so this was in fact a JS problem and not related to Drupal, I was in the correct place and writing some bad JS.

If you are trying to delay the AJAX clicks on the AJAX Links API module, you need to add a setTimeout and an extra variable to the JS defined in ajax_links_api.js

  $elements.click(function(e) {
    e.preventDefault();
    //This gets altered by setTimeout function, so save now.
    var store = this;
    var selector;
    setTimeout(function(e){
      if(!ajaxLoading) {
        ajaxLoading = true;
        var url = $(store).attr("href");
        var id = $(store).attr("rel");
        if(id) {
          selector = $(store).attr("rel");
        } else {
          selector = Drupal.settings.ajax_links_api.selector;
        }
        ajaxBefore(selector);
        ajaxLink(selector, url);
      }
    },800);  
  });