Saikat, did you solve this?
A suggestion would be to set an async callback to run before the timeout period so that the session will actually never timeout and the user will never have the issue.
When the FPM initialises, determine the timeout value (FM ICM_GET_INFO may help with this) and then set a callback to a function module that runs in the background with the timeout value minus a few seconds (or something).
That callback would then fire back to FPM in the allotted time which would then reset the session idle time back to 0.
I'm using callbacks for a progress indicator and the run time is A LOT and it doesn't timeout on me due to each callback that runs.
The best example you'll find is the basic one SAP have provided.
SAP Feeder Class ... CL_FPM_TEST_ASYNC_EVENT_FEEDER
Let me know how you go.