For a standby workload of long running analytical queries, is it better to turn on hot_standby_feedback or set max_standby_*_delay settings to -1?
With hot_standby_feedback on, vacuum can still be done, but it will be less effective as some tuples that would otherwise be vacuumed now have to be delayed to a later vacuum.  The only real downside that I know of is the increased bloat. How much of a downside this is depends entirely on your usage.  The worst case is if your database has small, intensively updated tables, like a work-queue table.  Those could get extremely bloated.  If you don't have that kind of table, you probably won't have a problem.

The problems with max_standby_*_delay are that other queries running on the standby are also having their horizon held back by potentially large amounts, and that if you hold back the stand-by long enough accumulated un-replayed WAL files will fill up your hard drive and you will lose the stand-by.