Anyway, how I would try to find this routine you need to expand is, well..
The game displays a message when the Pokémon isn't willing to obey you, right?
I would try to find out when that message is loaded and like so work my way back and find the actual routine that does the 'check'.
Also, if indeed the "Sanity Byte's" pattern repeats after 7, you could easily use a bit from that byte for the new 'flag'. At least I think you could.
Okay, that's a start. I'll see what I can do ...
EDIT: The following messages should be located at these offsets:
(Pokemon) ignored orders while asleep! - 0x3FD0F1
- The pointer to this message is at 0x3FE358
(Pokemon) ignored orders! - 0x3FD111
- The pointer to this message is at 0x3FE35C
(Pokemon) pretended not to notice! - 0x3FD16A
- The pointer to this message is at 0x3FE370
That's the end of the pointers. Not sure what I could do from here.