I really like idea 2 (having handlers return something instead of using responses directly), it is very .NETish, but this may not be a bad thing. Haven't delved into your implementation though.

As for 1, I thought this was possible using injectors?