A few years ago, I picked up a very interesting alarm clock.

The alarm on that clock is a small metal hammer that strikes the aluminum bar a single time. If you set the clock for, say, 7 AM, it'll chime once at 7:00, then again at 7:04, 7:06, 7:07, and in progressively smaller increments until (after 10 minutes) it's chiming once every 10 seconds.
The great thing about it is that if I'm in a particularly engaging dream, it won't wake me up until I get to a dull point. For example, once I had a dream in which I was driving on a racetrack, and the chimes entered my dream as lap timers. After I finished the race, I woke up.
It's pretty good for avoiding the issue of being woken up out of a really good dream.