¿Cómo puedo detectar y enlazar cambios entre valores de fila en una tabla SQL?

Tengo una tabla que registra valores a lo largo del tiempo, similar a la siguiente:

RecordId  Time   Name
========================
1         10     Running
2         18     Running
3         21     Running
4         29     Walking
5         33     Walking
6         57     Running
7         66     Running

Después de consultar esta tabla, necesito un resultado similar al siguiente:

FromTime  ToTime  Name
=========================
10        29      Running
29        57      Walking
57        NULL    Running

He jugado con algunas de las funciones agregadas (por ejemplo, MIN, MAX, etc.), PARTICIÓN y CTE, pero parece que no puedo encontrar la solución correcta. Espero que un gurú de SQL pueda darme una mano, o al menos señalarme la dirección correcta. ¿Existe una forma bastante sencilla de consultar esto (preferiblemente sin un cursor?)

Respuestas a la pregunta(5)

Su respuesta a la pregunta