So we can call off the search, I caved.
We bought him a Trek Marlin 5 which is a little more up-spec than originally planned.
When I thought about it, his basketball season was cancelled and we got a refund, his summer camps were cancelled and we got a refund so I splurged a little bit and got him what I think will be a pretty solid bike that will have some resale when he out grows it.