all of it plays a part. as to the degree i would rate them from worst to best
3) charge cycles
Ok, so can someone clarify for me (if we know the answer) which of the above 3 will "level off" and which are linear?
I'm not an engineer or any form of scientist with a degree so consider this a guess from someone who has worked in IT for 20 years (more than an armchair quarterback, less than an expert in this field).
I'm going to say
1) Heat - mostly linear, but variable by usage patterns see below
imagine there is (a, b, c, etcetera) list here of temp ranges. Each temp range ages the battery linearly compared to itself but the higher temps age the battery faster than the lower. So variations in battery temps would make this seem variable but the behavior would be roughly predictable and roughly reproducible.
2) Time - mostly linear, but variable by usage patterns see below
a) at near full charge - linear but faster than c
b) at near zero charge - linear but faster than c
c) between those two states - linear but noticeably slower than a and b
3) Charge cycles - level off
Of course all of this is self limiting as after enough charge cycles the battery becomes impractical to use even though it still works.
I wrote this totally off the cuff and it might be terribly inaccurate so if you have a better idea feel free to correct, support, detract, as you feel fit.