Conversation

There's precedent for this in dependently typed languages. They forbid infinite loops because infinite loops let you prove anything (they let you do circular reasoning).
1
2
It turns out a lot of code should halt, but some programs shouldn't (e.g. your pacemaker controller). Having non-termination contexts seems like a good way to support both cases well in the same language.
1
2
I'm not really an expert in this, but I think in dependently typed programming you can often check for termination, but you can also check for productivity. Checking for productivity as opposed to termination is useful for building programs that continue indefinitely.
1
1