I'm Sr. Dev engineer and I'm going through interviews as well. Unless the company you are interviewing with a very reputable company or(and) they giving you top $$$, don't go through 5-6h of interviews with one company.
Here is list of my personal rules that I've developed through years:
1. First phone conversation with the recruiter: average 10min, max 15 min. Once you will start getting a lot of requests for short conversation with recruiters (through LinkedIn), you will start limiting those interactions to shortest length of time, which is 10-15 min.
2. First round of interviews(usually technical): max 1.5h. If first round of interviews is 2-3h, just tell them that your limit is 1.5h. Look at this as a first date. Statically speaking, most dates, even good ones, never lead to a relationship.
I was recently approached by a small medical device company for 3h long first round interview. I told them that I'm only open to 1.5h for a first round.
3. Second round Max - 2h.
Some companies sneak in assignment before the the second round. Unless it Second round of interviews is final, then you give them 1h for assignment and 1h for interview.
4. Third round. Do to here, unless you have high changes of getting offer or it is actual offer.
2-3h is time enough to find out if someone is competent enough.