Hi Karl,
The XXXOverlay is the wrapper for XXXlayer, it contains many default setting so is easier to use.
The TiledWmsLayer is for solved the unmatched problem between different data source, it will always sent the bouding box for each tile, and then draw them in client side, but for WmsRasterLayer it directly sent the request which map passed in, it always don't match the tile matrix, so in some case it cannot match the other datasource when they render at the same time.
But because TiledWmsLayer need to sent request for each tile, so the performance should not so well like WmsRasterLayer.
If you want to open cache for TiledWmsLayer, please assign the cache in overlay level, which should works.
Wish that's helpful.
Regards,
Ethan