Hehe, those are some cool queries, I was hoping you were just missing some indexes or something, but it looks like you got all that covered.
An on-the-fly aggregation like the peers is always going to be challenging, especially since you're trying to find the top 100 players most played with/against.
One thing I would consider, is to move "log_wlt" and "player_last" from views to materialized views (unlike a view these need their own indexes). You could update these materialized views (concurrently) after a new batch of log files is imported. This might improve part of the peers query.