Have the semi-finals played at the same time. Also, play the finals and 3rd place match at the same time. Stream the finals live. Have an alt caster for 3rd place, or have the 3rd place match played in secret, with no results available to public. Have one of the players send recs to a tourney admin, who then sends the recs to caster spoiler free. Then cast that match after the finals. This should save an hour~ of time for your finalists. The only drawback is a game needing a save/restore (and thus no rec), in which case you could have that 3rd-person admin possibly do a private recording of the match which could then be used during the actual cast.
Players are the greatest commodity, so it's best to cater to them as much as possible, especially for one day tourneys. A one day event already cuts down heavily on available players, and requiring finalists to stay 8+ hours is even more restrictive.