Also note that for a little while now, the playground does support streaming the output (e.g. here’s a countdown), and live interactions (e.g. this is the guessing game from the book – make sure to enter your guesses with the input field at the very bottom of the execution tab; and FYI, there’s also a “Kill process” option in the ⋮-menu in the corner).
So timing out based on wall time would be “wrong” if the program might be waiting around for a while on purpose, or simply be waiting on additional user input.
I’m not familiar with the implementation of this at all, but I would assume it keeps communicating with the client and thus can eventually kill the process when the user leaves or refreshes the website.