This is what happens.
Native resolution 960x640 -> 1024x768 @ closest power of two, the camera just displays more. This means that if your source image is 1024x768, it will actually fill the screen, with a little being cropped off when displaying at 960x640.
Native resolution 960x640 -> 2048x768 @ closest power of two, the camera scales down by 2x. This means that your 1024x768 image from before would fill the screen. If you had a 2048x1536 2x / 4x variant then that will be the correct size too.
1x and 2x assets are meant to be correct multiples of one another, and if they are they will just work. If you can don't care about clipping that occurs at 960x640, then that is your problem solved.
If you really want to deal with incorrect multiples I suggest adding an additional "platforms" as you see fit. Eg. you can add a 1.2x platform for 1024x768, and a 2.4x platform for 2048x1536 to get everything to scale to the correct sizes. tk2dSystem.assetPlatforms is where this gets defined. This isn't officially supported as its really easy to shoot yourself in the foot, but it does work. What tk2d will try to do is make the images the same size (vertically), you can then use fit vertical on the camera to get everything to work and be pixel perfect. i.e. your 1x, 2x, 1.5x, etc all will be the same size vertically.