Option 1: Stay overnight at Haneda then take Limousine Bus that takes directly to Narita in the morning. According to the bus schedule, it will take about 60 mins, but the first bus is not leaving until 7:55 pm and arrive at Narita at 9:00. Is there enough time get to Narita, to check in the bag for my next flight to Jakarta? I'm also worried if there is traffic on the way to Narita.
I've always found two hours more then enough time to check in go through security, and exit immigration at NRT.
Option 2: Use trains. First one at 5:45 am using Tokyo-Monorail to Hamamatsucho. Switch to Keihintohoku Line to Nippori. Then switch Skyliner 1 to Narita Airport. My question is how easy is it to switch train? Is it walking distance?
The transfers are very easy at these stations, just follow the signs.
Another option 1 (one of many options) you have is arrive at HND, take the Keikyu line to Shinagawa Station, stay at a hotel around there (Shinagawa prince etc), take the morning Narita Express to Narita Airport from Shinagawa Station.
You have multiple NEX train times you can take from Shinagawa:
http://jreast-shinkansen-reservation...x_d/index.html
Another option 2, if you took the Keikyu Line to Shinagawa Station or the Monorail to Hamatsucho Station from HND (the night you arrive) you can transfer to JR to Ueno Station and stay at one of the hotels in the Ueno Station area (many business hotels around Ueno Station). The next morning take the Skyliner strait to NRT from Keisei Ueno.