This is our methodology as well. We start with a phone screen, usually less then an hour and basically not-technical. Just screening for basic 'Can talk about these topics' 'am I likable' 'am I coherent' and a resume overview.
They then come in for a 1.5 hour interview. We do a single session group interview and find it much more insightful since the interviewers can riff on each other a bit. It also ever so slightly increases the pressure level and forces the candidate out of the 'tell the same story to 4 different people' mentality. Its a real engagement that happens in this longer format. In this interview we assess basic skills by sticking the person in front of an ssh term and doing some basic tasks. This weeds our a LOT of people who don't have our skillset. This is 'open book/open google', life is open book, I don't care if you can't memorize things.
The candidates that get through this get a simple project to solve that is usually some simple CRUD app with a bit of AJAX and are asked to solve a specific business task in our domain with this. Usually no more then 5-10 hours of work. It is obvious that this is not something we would use in production so they know we are not taking advantage of them.
They then come in and present their solution to the entire technical team they will be working on. In this session they demo the software, do a code-review and then discuss/defend/explain their choices.
Overall this process lets us assess our critical skills:
Schedule/Time Management (You can always tell who waited until the night before)..
Go The Extra Mile Skills
The devs we hire this way do amazing work and tend to stay for quite some time. It may seem arduous but its really not so bad and its just our requirement. We've lost a few candidates who felt it was too much but that is another part of the hiring process, bouncing bad cultural fits..