In fact, just having the canvas present seems to slow it down.
That's because DirectX treats the canvas as one huge texture. A 2048x2048 canvas would take up way more vram.
Use sprites. Actually, for tiles that don't need any animation, use Background Tile objects. BG Tiles are lighter than sprites.
And if you want to squeeze a little more performance out of it, use only one tile that's solid and make it invisible, and have all of your other BG Tiles just decorative. Stretch and place your invisible BG Tiles where they're needed in the layout. You'll get a little more performance out of doing collision checks against just one or two types of solid tile as opposed to making every decorative tile in your game solid.
Another optimization tip: Tiles and sprites draw faster when the same ones are all lined up nicely in Z order. According to Ashley, objects get drawn according to their Z order, so if the tiles are all scrambled up the graphics card has to continuously swap out a new texture to render every time it draws an object. If they're all lined up it only needs to swap the texture once, then draws all the objects, then swaps again at the next object and draws all those. Apparently the texture swapping operation is one of the slower things your graphics card does, so making sure (at least most) of your tiles are z-ordered nicely will make things run a little smoother as well.
Also, you shouldn't have to worry about making sprites "as needed," the island level of This Cursed Rock is 3840x2880 and it's full of static tiles I placed with the layout editor (1225 objects, and I didn't even z-sort them ). So you're really not going to run into any performance issues in that respect, for the most part.