Your suggestion included the --bootstrap option, which is primarily meant to download and install toolchain modules new enough for everything to work with local::lib. Your instructions include first upgrading ExtUtils::MakeMaker, but if an older CPAN.pm or Module::Build installed, the bootstrap process will try to upgrade them which in this case won't work. The bootstrapping process will ignore the failure and continue though. Also, the -I path used is wrong, but unnecessary. The proper paths to load the newly installed modules would be $HOME/perl5/lib/perl5, not $HOME/perl5/lib. But just passing a -I option wouldn't help the commands run by make find the newly installed ExtUtils::MakeMaker and its helper modules. The --bootstrap option takes care of getting the library paths set properly.
My suggestion for manual bootstrapping from pre-downloaded files would probably be to extract both local::lib and ExtUtils::MakeMaker, then install with:
eval `perl -I"$LOCAL_LIB_EXTRACTED_DIR/lib" -Mlocal::lib` cd $EXTUTILS_MAKEMAKER_EXTRACTED_DIR perl Makefile.PL && make test && make install cd $LOCAL_LIB_EXTRACTED_DIR perl Makefile.PL && make test && make install