Sounds 100% like a miscommunication over plans for the day and as uncomfortable for him as for you.
You invited play date DC’s Mum along (aka a parent). You must’ve known they had another DC who’s need to come too. Play date Mum is working but Dad’s on childcare.
Dad gets message from Mum that Play date DC is invited to Kew along with a parent, and you can get everyone in for free. He ships up expecting to go with, you bat him back. He’s expecting the day out ends in time to get DC to the other activity he’s supposed to take them to this afternoon.
At that point, he should have said something. But, awkward situation? So he didn’t. Heads on to Kew anyway having said that’s what he’s doing (you didn’t ‘hear’ it that way but you weren’t expecting to).
When you turn up with the boys he’s feeling a bit awkward still - is he supposed to be hanging out with you or not? And now he’s got to negotiate the getting his DC to next activity on time. Double awkward.
Again, could all have been solved with a cheery “I think my wife and I have git out wires crossed a bit about plans for today”. For some reason that didn’t happen but I don’t think he was being weird - I think he was just socially awkward.
I’d send an apology text, if I were you, saying you think maybe wires got crossed but your DS has a great time and if they fancy another day out sometime soon to let you know.