You could add a delay in the script, so something like:
masterbedroomwakeup:
alias: 'Master Bedroom Wake Up Routine'
sequence:
- service: media_player.select_source
data:
entity_id: media_player.office
source: "104.3 | Q104 (Country Music)"
- delay: '00:30:00'
- service: media_player.media_stop
data:
entity_id: media_player.office
If there’s an event like a door sensor opening & closing, and you want the music to keep playing till that happens then use ‘wait’