A transient set with a mismatched key on read, so every request wrote a new row and none was ever read.
// the write
set_transient( 'turkerdev_feed_cache', $data, HOUR_IN_SECONDS );
// the read, six lines away
$cached = get_transient( 'turkerdev_feed_chache' );
// wp_options, four months later: 41,208 rows of
// _transient_ and _transient_timeout_ pairs, none
// autoloaded, none expired, none read.
A transient with an expiry is only cleaned up when it is read and found stale, so a key that is never read accumulates forever — the cron cleanup handles expired ones but the pairs still sit there between runs, and a high-volume miss outruns it. A constant for the key would have made this a fatal error instead of a four-month leak, which is the entire lesson.