Re your question 1.
You mention you wanted to do a side-by-side upgrade. So you don't need SQL 2000 to be on SP4 as a pre-requisite. You can perform a direct restore of a database backup on SQL 2000 RTM up to SQL 2008 R2 SP2. Upgrade Advisor SQL 2008 R2 will also work againsts a SQL 2000 RTM.
ref: Version and Edition Upgrades http://msdn.microsoft.com/en-us/library/ms143393%28v=sql.105%29.aspx
I reckon this link refers to an in-place upgrade. That is if you want to run SQL 2008 Setup against an existing SQL 2000 to upgrade the same SQL instance to SQL 2008, then it'll not work unless you're on SQL 2000 SP4 to begin with.
What's confusing is you mention you wanted to do a side-by-side upgrade (backup\restore SQL 2000 databases to another instance of SQL 2008), then you indicate you wanted to do an in-place upgrade (upgrade SQL Server 2000 instances). There are major differences between a db upgrade vs SQL instance upgrade
Side-by-side upgrade: i.e. you backup SQL 2000 db and restore it on SQL 2008 R2 somewhere else
In-place upgrade: i.e. you run SQL 2008 setup against an existing SQL 2000 instance. That SQL 2000 instance will be upgraded to SQL 2008 along with all the databases hosted. Read the mininum hardware and software requirement as per the link posted by Steve. SQL 2008 setup will not run successfully if you don't satify the minimum requirement whether its an in-place or a new install
One of the key step when the databases are on SQL 2008 is to run DBCC CHECKDB WITH DATA_PURITY. Database corruption on invalid values are not checked in SQL 2000 CHECKDB, and there's *no* CHECKDB option to check them on SQL 2000 (exception with a trace flag).
Hope this clarifies both scenario whether you wanted to perform a side-by-side or an in-place upgrade.
Microsoft Certified Master: SQL Server 2008