I just thought I'd post an update on this, in case anyone else has a similar issue.
First of all, the issue I was having with the exclusions running until 6am when I was expecting them to end at 5:44 was actually due to my second rule in the exclusion. I had selected "between hours 2am and 5am", which in English means "from 2:00 am to 5:00 am". However, VC was interpretting that to mean "exclude all times where the hour is 2, 3, 4, or 5am", which effectively meant "2am to 5:59am". I changed this rule to "between 2am and 4am", which now means my exclusion timeframe is what I expect it to be - 1:30am to 5:44am.
Second, based on the job log entries, the time exclusions are working as expected - it's the calendar view that's not. The calendar says that the job will run at 1:30am (the beginning of the excluded period) and then next at 5:50am (i.e. it skips 5:45am, the first timeslot after the excluded period). However, the job logs show that the last run of the day was 1:25am (i.e. it realized that 1:30am was excluded), and the first run of the next day was 5:45am, just as expected.