in reply to Midnight wraparound.

Given that I don't have PostGres, I tried it in Oracle. ... I hate Oracle's timestamp/datestamp stuff (probably because I haven't used it enough) - but here goes:
select id, event_time from table order by to_char(sysdate+(to_timestamp(to_char(event_time,'MM/DD/YYYY' +)||' '||to_char(systimestamp,'HH24:MI'), 'MM/DD/YYYY HH24:MI') +1-event_time),'HH24:MI') desc;
Basically if you get through all the conversion crap, it should look like this:
select id, event_time from table order by to_char(systimestamp+1-event_time,'HH24:MI') desc;
Which is basically saying, add a day to wherever you are now. Then subtract the time only portion (event_time) from that, and sort in descending order (largest to smallest). The idea is that anything that is the farthest away from tomorrow at this time, will be the closest thing to today at this time, because the window is 24 hours and your event_time only has a range of 24 hours.

(e.g. if it's 5PM right now and you have a job that runs at 4PM and one at 6PM and one at 1AM... tomorrow at 5PM it will be 14 hours difference between 1 AM, 23 hours for the 6PM and 1 hour for the 4PM - so , the order is 23, 14, 1 or 5PM, 1AM, 4PM - Capice? =)