In this usage, “past” and “last” are interchangeable. “He has been unemployed for the past/last two years” or “He has been the leading scorer for his team for the past/last three seasons” are OK with either past or last. Use “for” to specify an exact amount of time: “She has been sleeping for 8 hours”. Use “for over” to say that something has been happening for “more than” a certain amount of time: “She has been sleeping for over 8 hours” == “She has been sleeping for maybe 8.5 hours, 9 hours, 9.5 hours, etc.”. Use “in” to state that something happened within a certain time period, but did not happen constantly throughout the entire time period: “He has been the leading scorer twice in the last four years.”