One way to solve this would be to create the following macros. I am using 4 flags to allow up to 15 unexpired triggers but you can adjust the number of flags to meet your needs.
Macros M1 ON
conditions: flag 0 cleared
B1 ON
set flag 0
delay 10 min
M1 OFF
conditions: flag 1 cleared and flag 0 set
B1 ON
set flag 1
clear flag 0
delay 10 min
M1 OFF
conditions: flag 2 cleared and flags 0 & 1 set
B1 ON
set flag 2
clear flags 0 & 1
delay 10 min
M1 OFF
conditions: flag 3 cleared and flags 0, 1 & 2 set
B1 ON
set flag 3
clear flags 0, 1 & 2
delay 10 min
M1 OFF
Macros M1 OFF
conditions: flags 0 set and flags 1, 2 & 3 cleared
B1 OFF
clear flag 0
conditions: flag 0 set
delay 1 second
clear flag 0
conditions: flag 1 set and flag 0 cleared
delay 1 second
clear flag 1
set flag 0
conditions: flag 2 set and flags 0 & 1 cleared
delay 1 second
clear flag 2
set flags 0 & 1
conditions: flag 3 set and flags 0, 1 & 2 cleared
delay 1 second
clear flag 3
set flags 0, 1 & 2
I have found that for some reason the 1 second delays are needed, otherwise multiple macros will be triggered with one command.
Let me know if you have any problems.