If you are looking for something custom on the ESP8266 end, you a likely going to want to write a program to do what you want it to do. If you are already using MQTT, then you might consider using MicroPython on the NodeMCU. The toolchain is a bit simpler, and the development iterations are a lot quicker than flashing a C program.
One possibility would be a Shelly Button with a Shelly 1 inside.
It can use its own firmware or be flashed by something like ESPHome (both are supported in Home Assistant)
The setup is not cheap, though (~12€ piece)