Dynamic arguments in an AJAX link
Solved! I found this post - https://drupal.stackexchange.com/a/52788/260 - which answered a very similar question, and that changed everything. This issue is essentially a duplicate of that one.

The fix here in my case was to not just change the link's href but to also update the Drupal.ajax object, like this:

Drupal.ajax['load-more'].options.url = link;


"load-more" is the ID of the AJAX link.