The SP STS is an RP-STS i.e. it does not have a credential store to authenticate against. That's why you have to federate it with ADFS which is an IP-STS i.e. it authenticates against an AD in it's domain.
ADFS can be either an RP-STS or an IP-STS e.g. you could have the path - SP app. -> SP STS -> ADFS (RP) -> ADFS (IP) -> AD.
The IP-STS you federate with SP does not have to be ADFS - it can be anything that supports the WS-Federation protocol e.g. OpenAM, PingIdentity, Azure ACS. The main point is that at the end of the chain there has to be a credential store to authenticate against.
This credential store does not have to be AD e.g. ADFS -> IdentityServer -> SQL Server.
ADFS can be federated with many different IP-STS. The user can choose which one to use for authentication.
ADFS supports both SAML2 and WS-Fed as federation protocols. The SP RP-STS only supports WS-Fed.
The previous version of ADFS (i.e. 1.0) is the version that is installed on Windows Server 2008. You have to download ADFS 2.0. Unfortunately, there are a number of blog posts which uses the term ADFS but which refer to ADFS 1.0. Beware - ADFS 1.0 is a completely different beast.
WIF is just a set of .NET classes. It is not an STS. You can go WIF -> IP-STS or WIF -> RP-STS -> IP-STS etc.
Hopefully this answered some of your questions but fire away if anything is still not clear.
Update:
The only STS's I know of that incorporate WIF are ADFS and IdentityServer. Most of the ones mentioned above are Java based.
The reason that you would choose ADFS over IWA is that both authenticate against AD but only ADFS adds SSO and Federation functionality. Also ADFS provides all the claims-based plumbing - SAML token etc.
When you federate ADFS, you provide the ability to authenticate against multiple credential stores. But if you choose to authenticate against an instance of ADFS, it uses the AD repository. When you install ADFS it finds the instance of AD in its domain. That's the one it uses.