Probably a runaway app, most likely what we call a race condition. Apps naturally parallelize using constructs that we call threads. Think of it this way - for listening to music, the app may have a thread for the display updates, a thread to sense inputs and one for actually playing music. (That's an insanely simplified fictional example, but good enough for the idea - threads can run in parallel.)
And quite often, threads will rendezvous with one another for control purposes.
Every so often, you get a bug where they won't, they just hang waiting for each other.
Or, you can get the condition where they spin out of control missing the rendezvous at top speed - and Android will automagically distribute threads across CPU cores. And spinning threads racing each other can and will do that across multiple cores at top speed. Drawing max power and dissipating it as heat.
If it comes back, you have a flakey app somewhere.
If it doesn't, you could have just had a single bit in ram stuck for a while, and coincidentally at the point that would induce the race condition.