My suggestion would be offload some of those basic questions to an automated at home code test. It'll filter out candidates who can't FizzBuzz, so you're left with a more reasonable 1 hour technical interview with less pointless candidates.
The timing though was a little ridiculous. You could, and perhaps SHOULD, easily spend an hour on 10 and an hour on 11.
IME, this is the biggest problem with the current state of the interview process - what I call Hollywood hacker testing. Unrealistic timing expectations based on what’s seen in Hollywood movies.
The take home test is worse for this! At least this wasn’t part of your process...you don’t want have a hiring process where the only person who can put in 60 hours wins.
Be realistic, if you really care about improving the hiring process and not being another dumping ground on Glassdoor for interviewees you’ve angered.
Your funnel also looks pretty normal. I wouldn't be surprised if all 8 fail the test for front-end, welcome to hiring in the real world.
1-7 - basic HTML/CSS/JS proficiency (and ability to effectively Google for help if they didn't know about CSS' nth-child or whatnot)
8 - get them familiar with the jQuery animate function (which I wanted to use later as a visual proxy for any async function) -- I was more than happy to link them to the jQuery docs or explain the parameters here if they weren't familiar with it.
9 - testing understanding of async functions and how to use callbacks. Ideally they used recursion but I would have accepted a calculated timing-based solution using setTimeouts as well.
10 - wanted to see how they'd go about learning something new given the documentation -- async.js' docs don't have great examples included so I was hoping to see them search for them on Stack Overflow if they didn't quite understand the callback formats.
11 - algorithm design and recursion. But mostly I thought people would get stuck here and I wanted to see how they dealt with that and what they did to get themselves un-stuck.