So a couple points to be a little bit realistic here:
1. The best way to implement a solution for this would be to use one remote server-side application, and a client-side application that would run on a router. The client would basically forward all requests to the server, and the server would handle payments, authentication, and re-routing.
2. If you wanted to implement this as just a client side application where anybody can use it, that would be possible too. However, it would require communication with the internet in order to perform bitcoin transactions. Furthermore, it would be unreasonable to not use an external service for handling bitcoin payments. Building a bitcoin payment system from scratch would be a horrible idea... way too much time and effort to try to reinvent the wheel.
3. I seriously doubt you can find good software engineers who are going to want to build this as open source. Or if they did, the reward would have to be way way way more than 20 BTC. An app like this wouldn't be too difficult to make, but it would be VERY time consuming. There are a lot of moving parts involved. In real life, something like this would most likely cost at least several hundred thousand dollars to develop.
So a couple points to be
even more realistic here:
1. Why would anyone want a centralized single point of failure? The original idea of running the system on the router itself is more than fine, and gives the operator maximum flexibility.
2. Not sure why you would consider a router a "client side application", but regarding the bitcoin transactions I see absolutely no problem. Using simplified payment verification (via Electrum or obelisk servers) it's fairly easy to verify received payments. I would estimate the time to code this to 30-45 minutes. It's no horrible idea at all, Bitcoin was invented to avoid centralization ... using a centralized service is ironic.
3. If Linus Torvald had thought this way, we all would be still using Windoze
Still not sure why you call it time consuming. I could do it in one 8 hour work day, I think.
Whats so hard to monitor bitcoin transactions and set individual routes for the connected clients (either a route to the internet or a route to the payment site) using a hand full of easy bash scripts that are triggered from either a countdown timer or a SPV client when certain transactions are seen?