I have tested the varied font width and it works awesome!
With that in mind, I have started to revise the font. I fixed the lowercase x and tweaked some lowercase letters. The 5x4 size is a bit limitting, so the we don't have enough space for a counter in lowercase e or adding more heft to the lowercase i (as it is, a dot and a dash makes it look more inline with the other lowercase letters, previously it looked shorter).
For the uppercase I have decided to add a bit of chunkiness to their form. It is inspired by both Atari 8bit computers and early gameboy fonts. This will make the text altogether, but especially all uppercase, will be much more pleasing to the eye. The added width made M,T, W & Y a full 6 pixels wide, while I & L are now 4 pixels wide. I think it will balance the overall line width, especially with the lowercase letters being 4 pixels wide at most. (I am not sure how your text width function work, but I guess just reading where the "white" text pixel are and adding a blank pixel to the right for monospacing and making text read well.
Let me know what you think and see if that would work. I started working on the numbers, but I will look at the symbols, but I think those are already pretty good, needing maybe little TLC. I am thinking of making the punctuation symbols (. , ; :) a little thinker, because they are quite important for code.
edit: now with chunkier lowercase!