Not sure if this is going in the direction you are looking for, but to some of your questions:
You could start by looking at the lume1 driver, created by @loneoceans.
Here’s a datasheet: click
Here’s more information: click
You’ll be lucky to find a pre-built lume1 driver for sale anywhere these days, so you’d probably have to have to put it together yourself:
The driver is programmable via flashing pads on the underside of the board. You can use Hank Wang’s flashing kit with your computer or an Android phone to flash/re-flash the firmware. This can be purchased here: click.
However, take note of the need to swap around the MOSI and MISO pins - see “Flashing Firmware” here: click
The lume1 driver is supported by Anduril 2 firmware. Anduril 2 is open source, so with sufficient programming skill, you can re-configure it or modify it to achieve the modes you are looking for.
The code repository for Anduril 2 is here: click
The lume1 is designed physically to fit in an 18650 FW3A host with a tail-switch. However, since you are designing your host from scratch, you may be able to design it in such a way that a 21700 can be used. Otherwise you may need to change the design of the lume1 board to fit the different dimensions.