The shapes for cursors that are available in virtual terminals and real terminals are limited.
Generally, they only enable setting shapes that match old display hardware, which usually only permitted specifying a blink cycle and a starting and an ending scanline for when the cursor was gated on, sometimes only a very limited subset of start+end combinations (e.g. underline, overline, half-height, block).
The two major control sequences for this are DECSCUSR and LINUXSCUSR.
DECSCUSR is DEC's name for the control sequence that DEC supported in its later range of terminals.
Like other manufacturers of real terminals, in its doco DEC gave its vendor-private control sequences names that began "DEC".
(In its doco, Tektronix used the "TEK" prefix for naming its vendor-private control sequences, for comparison.)
The Linux doco is quite poor, as usual, and doesn't name stuff.
So "LINUXCUSR" is my coinage, with a "LINUX" prefix by analogy.
Neither DECSCUSR nor LINUXSCUSR are standardized.
They are different from each other, but they were invented at roughly the same time (only appearing for the DEC VT 5xx in the 1990s) so there wasn't the usual years of DEC prior art. ☺
Egmont Koblinger has commented elsewhere that the model of both is underwhelming, as it conflates blinking with shape.
There also has been some discussion of changing the meaning of DECSCUSR 0 to enable user-specified shapes.
And Microsoft Terminal has highlighted the mismatch between the DECSCUSR model and the model used in the Win32 console mechanism, which has allowed arbitrary start lines for three decades (four decades if one accounts for its predecessors in the VIO subsystem of OS/2 1.x and the PC/AT video firmware).
The upshot is that there isn't a single control sequence that will work universally, the world currently dividing into DECSCUSR and LINUXSCUSR camps, because almost no terminal emulator supports both.
Moreover, with these two you do not have anywhere near the flexibility that you want.
The only widespread deviation from the start+end scanline model is a vertical bar, and that you only get with some GUI terminal emulators (e.g. XTerm), which have added one additional shape as DECSCUSR 5 and DECSCUSR 6.
Yes, you could modify the code of the FreeBSD kernel, NetBSD kernel, OpenBSD kernel, and Linux built-in terminal emulators, and of the various application-mode terminal emulators (framebuffer and X11 GUI) to do more cursor shapes.
It would be quite tough to make it universal, though.
I've done this in my terminal emulator. DECSCUSR 7/8 are an outline box. DECSCUSR 9/10 are a star. DECSCUSR 11/12 are underline+overline. DECSCUSR 13/14 are a reversed "L" shape. I've been thinking, based upon reading some old 1970s literature, of adding two orientations of square brackets and overline-only. But DECSCUSR does not readily lend itself to the sort of arbitrary specification of actual Unicode characters that you are looking for. LINUXSCUSR does not match that idea at all, moreover.
Further reading