This allows my web layer to have no project reference to my data layer, and forces my developers to explicitly call the logic/service layers every time they want some data.
I totally feel your pain for Linq. I'm a .Net guy myself and when we went full time on our startup we went with C# and I vowed to never fall into the traps and horrible mistakes I saw at past jobs using Linq2Sql and EF. Before POCO was available for EF I was masking the entities with Interfaces so that the web layer had no way to make 'extra queries'. I'd love to learn more about how you used T4/POCO/EF together to clean up this constant problem.
I've also wanted an excuse to use Unity for something... haven't had the chance yet.
Sure, we could have gone over the 24hr limit and do a few more "nice to have" functions. After all, this is not a commercial contracts where the time constraint is real. But we stuck to our plan, put our pride aside and just accepted that the product will look a bit bit crusty (and people will tell us).
So far, no regrets - while we feel a bit embarrassed when people give us negative feedback, at least the app is out there and criticisms will only make it better.
Don't be embarrassed. ;)