Can the timeout period for presence be adjusted at account level, per key or per channel?

Yes, the default is 320 seconds. Starting with our v3.6 SDKs, there is client specific support for custom timeout configuration. You can set the heartbeat and the heartbeat interval when the client/device instantiates the PubNub object.