Programs together with their inputs
A program can halt quickly for one input and loop on another, so the question concerns a program-input pair. It asks about eventual termination, not completion within a chosen timeout. Observing that a run has not yet finished establishes only its history so far, not that it will continue forever.
References: [1]
Why a universal decider fails
A classical contradiction assumes an always-correct halting decider and constructs a program that does the opposite of its prediction: looping when predicted to stop and stopping otherwise. Applying the construction to its own description defeats either answer. This rules out a universal decider, rather than forbidding analysis of one chosen program.
References: [2]
What simulation can establish
Simulation can confirm halting when the observed run terminates, but a nonterminating run supplies no finite final negative observation. Cycle detection works within states it can recognize or cover, not automatically across arbitrary storage and inputs. Practical analysis tools therefore use restrictions, approximations, or assumptions with explicitly bounded guarantees.
References: [1]
Proving particular cases
Finite countdown loops, appropriate structural recursion, and restricted languages can have provable termination properties. The universal impossibility does not make verification pointless or every bug undetectable. Its claim is narrower: one algorithm cannot provide complete and correct halting decisions for the unrestricted collection of all programs and their inputs.
References: [2]