Do you actually run into an issue where your connection pool gets depleted?
I would worry about my users having to wait over 10 seconds to get a response, not about micromanaging my connection pool.
If your database runs into locking issues because of long running transactions that’s something I would investigate because it shouldn't.
For reference; if for some weird reason you would want to tackle this issue (I can think of some scenario's), what you should do is do every separate part of your action in a separate transaction. The original transaction will still be open, but since it doesn't do anything it will not have any impact whatsoever. If you would do this you would need to have a very clear idea on what kind of transactional integrity you still want to achieve.
“How to release the db connection for the duration of the REST action? I tried adding Start- and EndTransaction before and after the REST action, but that doesn’t change this behaviour.”
By doing this you place the REST action in a separated transaction, but keep the original transaction started at the DB retrieve. So I suspect that placing the Retrieve in a separated transaction would do the trick.