Да и вообще, у тебя фигня какая то. Код твой синхронен. Ты бы мог вместо этого
var eventforsibling = new CustomEvent('eventforsibling');//новое событие
document.body.dispatchEvent(eventforsibling) //вызов
просто вызывать alert( finallength), и было бы то же самое. Ты написал синхронный код через асинхронную жопу. Смысл то какой в этом?