So this probably won't shock most of you, but ChatGPT gave me the right answer here. The trick was to double the height and width attributes of the canvas while using css to keep them it at the right size. This doubled the bitmap density!