I went through some very tedious number crunching (number of bounces, frames between bounce and apex etc) and came up with the following graphs (marking apex heights per bounce):
They were bounced on a tile floor, and all have pretty similar drop-off curves. These are the graphs overlaid:
Based on this information, I recreated the movements in Maya (vimeo link because the upload feature here just refuses to work!)
Had I not gone through this process, I'm certain I wouldn't have bounced the pingpong ball as many times or with as much of an apex drop-off as research revealed. The tennis ball also deadened to a stop a bit more abruptly than I would've animated, and that might be due to its fuzzy surface, causing more friction.
So what did I learn? That there are more factors to consider when it comes to animation that either I am conscious of or would normally address. I probably could've busted out something believable in a fraction of the time that I spent doing all this. However, this is balls bouncing and there's surely going to be far more complex objects to deal with in the future that will require this sort of approach in order to recreate believably.