After working with all three, I'm fascinated that you would consider CDK to be more overhead than the others! Personally, I've found CDK to be a great all-round solution and the fact that HashiCorp has a terraform extension for it (so that it can deploy to any cloud provider) adds an extra incentive to use it.
Has SAM evolved at all in terms of its ability to run serverless elements locally for testing? Or does it still require downloading uploaded layers etc.?