That's pretty cool! It reminds me of a similar project I did called z80e, which is an emulator for TI calculators [0]. It uses unicode braille to "render" the screen onto a terminal. Doesn't work on the VT220, though, for obvious reasons.
I'm reading the source code of z80e (tui.c). Your idea of using unicode to display pixels is very interesting. I imagine a fallback mode for libsixel for terminals not sixel-compatible (or the opposite).
I try ton compile but it fails (first because scas was missing and now I have an "a2x: not found" in scas).
I appreciate a lot the "multitarget rendering" (emscripten, tui, sdl...).
[0] https://github.com/KnightOS/z80e