I know I sound like a broken record to people who read my posts, but if you haven't checked out Motion Lighting or even Hubitat Simple Lighting, I'd encourage you to see if that fits your needs first. I think they can handle everything you're asking for, though you'll need three separate child apps.
If you do want to use Rule Machine, I'd suggest readingthe documentation if you haven't already. There is a basic motion-lighting example you could base yours on in those docs--you'd just have to add in conditions for the time (which will make it much longer than that simple example, but it should provide a framework to start from).
Where you'll have to get creative is the "if we are up and reading in bed, I don't want to have to start waving my arms to keep the lights on" part. There are a few workarounds I can think of:
- Assuming you don't want to use a location mode for this (I personally wouldn't), you could create a virtual switch that you turn on when you're reading and use this virtual switch as something to extend the "off" delay (or even eliminate that entirely). This could be added as another condition in the rule when creating the delay (if you want to keep it but just lengthen it) or elsewhere (if you don't want "off" at all). You could turn this on/off via voice control (if you have such a device) or a Dashboard tile (if that's not too much hassle). Perhaps you could make it automatically turn off under certain conditions too if you forget (time, no motion for a really long time, lots of motion elsewhere, etc.).
- Consider a more sensitive sensor closer to where you are, like an Iris v2 or a Dome DMMS-1 on the highest sensitivity, and maybe mount it on or near your bed/nightstand/etc. When close, it's likely to detect smaller movements than hand-waving. Add this sensor to your automation however you see fit (whether it's to turn and keep the lights on or just keep them on--you may want the latter if it's also visible from a hallway you might just walk by).
- Get really creative: consider the possibilities with a pressure mat and an open/close (contact, a.k.a. door/window) sensor with external contacts. Under my living room couch cushions, I have a pressure mat whose (dry) wires are hooked up to a Z-Wave contact sensor that has external contacts (the Ecolink 2.5 would work well here; the similar Monoprice 15270 would also work if you solder the internal contacts closed, and I think both require setting a parameter to enable the external ones). When pressure is applied to the mat, the Z-Wave contact sensor closes. You should be able to do something similar with a bed and a sensor under the mattress (may need the pet-resistant variety to eliminate the mattress weight itself as something that could close the loop). Then, when the sensor is closed, don't turn off the lights even if the motion sensors go inactive (or if the app you're using doesn't support contact sensors, use a custom driver or virtual device plus a rule to present it as one instead).
Hope some of this helps!