What algorithm for feedback control to maintain heart rate on a turbo trainer
This is not an 'engineering' problem, but a human factors problem.
Presumably you want people to like using your machine. That means implementing lots of algorithms, or at least tuning for them, and trying them out on a wide range of people.
Some may prefer the feel of a PID where the goal is to get a steady work rate for a given heart rate, some may prefer a much simpler system that switches abruptly between a stressing level and a coasting level, perhaps with some time delay.
Probably you'll need to provide both, and a few more, for people to select betwee, depending on how they're feeling.