I'll add my two cents, and also advice going Arm or maybe RISC-V.
If you go the Arm way, the RP2040 (RPi Pico) is a
Cortex-M0+ core, with a very simple instruction set (see the attached picture) and none of the traps for old players more sophisticated Cortex-Ms have, but still quite powerful.
A regular instruction set (quite RISCy), plenty of memory, many general purpose registers, HW multiplication, etc. etc.
For the full core documentation,
Arm pages are the best.
You mentioned writing your own ISRs, an advantage of the Arm architecture ISRs are exactly like any other function, no need for special return instructions or prologues and epilogues, the CPU will stack all the registers for you and pop them out automatically.
The ABI to interface with libraries written in C is quite rational and simple.
Don't let the fact it's 32 bits deter you, it just makes things easier.
Instruction are 16 bit wide (Thumb2), possibly followed by a 16 bit operand.
RP2040 peripherals are not that crazy to program, and cover all the basic needs and some advanced ones with PIO - another assembly language in itself!
Documentation is half decent (IMO, worse than STM32, but better than others).
Pico boards are so cheap it's a no-brainer, if you don't like the experience, you are out of only a few dollars.
A (DD)Go(ogle) search brings up many results with info on how to use assembly on an RP2040.
Pico2's RP2350 is a more complex Cortex-M33 core, a large (and a bit sideways) superset of the simple M0+.
My first language was 6502 machine code (pencil and paper then hex on keypad, no assembler!), and I admit I had lots of fun.
Would I do that now with availability of cheap powerful HW, excellent free compilers and IDEs? Well, I might but just for the nostalgia value...
EtA: Oh, and if you come from PIC or 8051, the simple memory model and availability of registers are a breath of fresh air!