If one looks at the code for a Turing Machine (TM) with $q$ states and, let's say, $2$ symbols, they all look pretty much the same: A list of $5$-tuples: $$ < state, symbol{-}read, symbol{-}to{-}write, head{-}movement, state > \;. $$ Some of the $q$-state TMs are, however, rather more complex than others: the Busy Beaver (BB) TMs. These TMs exectute an immense number of steps on an empty tape before halting. For example, there is a $6$-state BB that takes more than $10^{36534}$ steps before halting.
(Image from Jeffrey Shallit's notes (PDF).)
My question is:
Is there some measure that captures the complexity/intricacy of a TM's behavior?
One can replace TM by "computer program" here. I am looking for something beyond the complexity of the description of the program, and which instead captures its possibly complex behavior on certain inputs. It seems the Kolmogorov complexity would treat a $q$-state BB as equally complex to a mundane $q$-state TM.
One possibility would be to run the TM on all inputs up to some length beyond which the TM could not distinguish, and form a measure from the number of steps before halting. (Or perhaps: also before looping?) Have such measures been considered in the literature?