Did you find an answer to this? I am currently trying to write an addon for this so anyone can add their own music - and I have got to the same point of confusion having successfully done everything else!
The radio functions seem to be using the duration to decide how long to wait (it is a waituntil loop) before playing the next track. If the track in the config has no or 0 duration then the functions set it to 120 seconds. So in theory as far as I can tell from the code (below), as long as the duration is set to longer than the track (in seconds) it should play the full track. I have played around with this and it seems to work.
The waituntil loop looks like this;
playMusic [_track, _start];
private ["_duration", "_delay", "_timeNow"];
_track = player getVariable ["HSim_radioMusicTrack", ""];
_duration = player getVariable ["HSim_radioMusicTrackDuration", 0];
_delay = _duration - (player getVariable ["HSim_radioMusicTrackStart", 0]);
_timeNow = time;
((time - _timeNow) >= _delay) ||
((vehicle player) != _this) ||
!(player getVariable ["HSim_radioMusic", false]) ||
((player getVariable ["HSim_radioMusicChannel", ""]) != _channel) ||
((player getVariable ["HSim_radioMusicTrack", ""]) != _track) ||