Klop asked me about this, but I may as well post a thread on it, in the event that anyone else needs to know how it works.
This is the timing of the 'win game' cutscene and credits scroll:
1,492 frames from Link standing next to Zelda, before the text scroll appears:
//frame //event 0 LINK at ZELDA's side 288 begin WIPE (8px per side per step, each 5 frames) 363 WIPE complete, DOT out, A/B items out QMisc.colors.link_dot = 255; show_subscreen_items = false; 365 first MESSAGE character in 371 next character in 407 last character in 668 LINK out, ZELDA out 669 LINK in (TRIFORCE overhead), ZELDA in (TRIFORCE overhead) 733 BLUE flash bg 734 RED 735 GREEN 736 BLACK ... 860 BLACK, LINK out, ZELDA out 861 LINK in, ZELDA in 927 first MSG character in 935 next character in 1335 last character in 1461 LINK out, ZELDA out 1492 end of Link and Zelda cutscene. 1493 begin SCROLL
The code/timing for scrolling text depends on the quest:
Custom quests, and 1st quest, should be 1,200 frames after frame 1,492.
2nd and above, 1,440 frames (also after frame 1,492), it seems.
So, custom quests and 1st.qst, the total ending time is 2,692 frames (44.8666666 [repeating] seconds).
2nd.qst and above, 2,932 frames (48.8666666 [repeating] seconds).