Niranjan,
Yes, it is valid. This is one of the things that you can only do with BMT, start a transaction in one method of a stateful session bean and commit in another method. This is discussed a little bit in EJB3 in action, page 201, section 6.3.4
As for timeout method, Required or Requires_New are allowed (refer to the sidebar
EJB Timers and Transactions, page 173 of the same book). I am not sure why only these two are allowed, I am suspecting because the container is invoking the timeout method not a client.