The 3-second timeout was causing streams to stop prematurely after
block download completed (~3 minutes) instead of playing for the
full block duration (~30 minutes).
For test scenarios with a single block, we need a much longer timeout
to allow the TimerNode to pace the stream properly over the full
block duration.
Changes:
- BLOCK_ID_TIMEOUT_SECS: 3 → 3600 seconds (1 hour)
- Modified download_and_decode_block() to return final timestamp
- EndOfStream now uses correct timestamp instead of 0.0
This allows the TimerNode to properly pace the stream in real-time
instead of the stream ending immediately after download completes.