Como posso detectar e vincular alterações entre valores de linha em uma tabela SQL?

Eu tenho uma tabela que registra valores ao longo do tempo, semelhante ao seguinte:

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

Depois de consultar essa tabela, preciso de um resultado semelhante ao seguinte:

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

Eu brinquei com algumas das funções agregadas (por exemplo, MIN, MAX, etc.), PARTITION e CTEs, mas não consigo encontrar a solução certa. Eu estou esperando que um guru de SQL possa me dar uma mão, ou pelo menos me apontar na direção certa. Existe uma maneira bastante simples de consultar isso (preferencialmente sem um cursor?)

questionAnswers(5)

yourAnswerToTheQuestion