I arrived from Indonesia two weeks ago. We made a transit stop while travelling from Singapore to Banjarmasin (Kalimantan). We were told that Jakarta migration process will take a lot of time and that we need more than 2 hours between our flights, so our flight was schedule to arrive at 15:05 (actually it arrived at 15:35) and our next flight will depart at 18:35. That was 3 hours between flights. We almost loose our flight. The migration process for the visa on arrival is very simple in theory. You first have to pay it in a window and then make a queue for the visa stamp. The first problem is that for the visa payment there is no queue, you just push and fight for it. However is quite fast. But the queue for the visas stamp is another story. The queue was around 60m (200ft) long. Our first 2 or 3 meters took about 1hr. In that time we saw several persons from the migration or airport staff moving around the people. They were there supposely to help organizing, but the true is that they were making the contrary. Then we saw people paying to them (corruption) and suddenly they were bypassing the whole queue.
After that first hour, those persons from the staff disapeer and misteriusly the queue began to move quite fast, about 45 to 1 hour for the remaining 50 something meters. We also saw people paying the migration officers, when they have some problems with their documents. The whole process of arriving, visa stamp, luggage pick up and running to the next flight counter took about 2:15hrs. Fortunately, our next flight was delayed for 45min, so we arrived on time.
So really plan with a lot of time for this process or get your visa in advance with the extra cost.
It was really a very stressing and not a nicely welcome to that wonderful country, Indonesia.